如何从Spark群集中的特定本地路径(无论是在主节点还是从节点中)加载文件?

时间:2016-11-02 15:27:30

标签: python apache-spark pyspark apache-spark-sql spark-dataframe

我是火花的初学者。最近我正在学习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共享网络驱动器上的本地目录?非常感谢你!

0 个答案:

没有答案