我是Spark的新手。我在本地设置了主设备(192.168.33.10)和从设备(192.168.33.12)集群,并且我写信给以下脚本演示主设备和从设备在其自己的机器上运行get_ip_wrap()。Spark/Python - 取回IP地址。
但是,当我运行命令./bin/spark-submit ip.py
,我只看到192.168.33.10
在输出中,我也期待在输出192.168.33.12
以及。
['192.168.33.10', '192.168.33.10', '192.168.33.10', '192.168.33.10', '192.168.33.10']
我在这里错过了什么吗?
import socket
import fcntl
import struct
from pyspark import SparkContext, SparkConf
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
def get_ip_wrap(num):
return get_ip_address('eth1')
conf = SparkConf().setAppName('appName').setMaster('local')
sc = SparkContext(conf=conf)
data = [1, 2, 3, 4, 5]
distData = sc.parallelize(data)
result = distData.map(get_ip_wrap)
print result.collect()