将功能从其他Python模块导入Apache Spark

时间:2019-11-20 09:14:46

标签: python apache-spark pyspark

我正在尝试使用Spark执行Python Dict转换的基本任务。示例代码如下所示。

from pyspark import SparkContext, SparkConf
import sys
sys.path.insert(0, 'path_to_myModule')

from spark_test import make_generic       #the function that transforms the Dict

data = [{'a':1, 'b':2}, {'a':4, 'b':5}]

conf = (SparkConf()
         .setMaster("local")
         .setAppName("My app")
         .set("spark.executor.memory", "1g"))
sc = SparkContext(conf = conf)


def testing(data):
    data['a'] = data['a'] + 1
    data['b'] = data['b'] + 2
    return data

rdd1 = sc.parallelize(data)
rdd2 = rdd1.map(lambda x: testing(x))
print(rdd2.collect())

rdd3 = rdd1.map(lambda x: make_generic(x)) #does similar task as testing()
print(rdd3.collect())

该模块的路径已插入sys。但是,我得到以下错误。

Traceback (most recent call last):
  File "/home/roshan/sample_spark.py", line 5, in <module>
    from spark_test import make_generic
ImportError: No module named 'spark_test'

此外,make_generic()函数需要一些安装在virtualenv中的软件包。

总而言之,我需要以下方面的帮助: 1.我需要Spark才能成功导入模块 2.能够使用virtualenv运行Spark-Submit作业。

0 个答案:

没有答案