我是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()