我是火花的初学者。最近我正在学习pySpark并尝试向spark集群提交一个简单的应用程序(我建立了一个拥有1个master和1个worker的集群)。但是,我不知道如何正确指定路径(例如主节点中的文件夹)。
这是我的代码:
import os
from PIL import Image
from pyspark import SparkConf, SparkContext
APP_NAME = "ImageResizer"
if __name__ == "__main__":
conf = SparkConf().setAppName(APP_NAME)
conf = conf.setMaster("spark://10.233.70.48:7077")
sc = SparkContext(conf=conf)
s_list = sc.parallelize(os.listdir('.'))
s_jpg_list = s_list.filter(lambda f:f.endswith('.jpg'))
def resize_image(f):
i = Image.open(f)
size_64 = (64,64)
name, extension = os.path.splitext(f)
i.thumbnail(size_64)
out_path = 'resize/{}_64{}'.format(name, extension)
i.save(out_path)
return out_path
s_jpg_files = s_jpg_list.map(resize_image)
print('Converted Images:', s_jpg_files.collect())
我想从主机中的文件夹批量调整图像大小,代码获取python应用程序所在文件夹中的所有内容。但是当我将应用程序提交给spark时,系统找不到路径。
然后我尝试了:s_list = sc.parallelize(os.listdir('/home/xxx/'))
似乎我仍然无法访问所需的文件夹(我不知道在选择文件夹时如何指定主节点或从节点)。
任何人都可以帮我修改我引用路径的方式吗?
此外,我如何参考提交作业的机器/每台机器/ A共享网络驱动器上的本地目录?非常感谢你!