提交python作业以引发

时间:2018-04-19 14:44:21

标签: python csv apache-spark pyspark spark-submit

我正在尝试提交用python编写的作业来激发。

首先我要解释一下我的设置,我在一台正在执行的Windows服务器(40核和1TB或RAM)上安装了一个spark 2.3.0节点,当然后面的目标是创建一个更少的集群强大的节点,但现在我正在测试那里的一切:)

我的第一个测试包括获取一组表格CSV文件(每个40-100GB),拆分它们,然后将拆分结果保存在其他地方。

我一直使用jupyter notebookpyspark上制作原型(自动创建一个sparkContext。

现在,我想创建一个spark_test.py脚本,其中包含我在main中的原型体,我打算将其发送到spark-submit。

事情是,我的脚本的处理部分似乎根本不起作用。在这里你有我的剧本的主体:

from pyspark import SparkContext, SparkConf

def main():
    # Create spark context
    spark_conf = SparkConf().setAppName('GMK_SPLIT_TEST')
    print('\nspark configuration: \n%s\n' % spark_conf.toDebugString())
    sc = SparkContext(conf=spark_conf)

    # Variables definition
    partitionings_number = 40
    file_1 = r'D:\path\to\my\csv\file.csv'
    output_path = r'D:\output\path'

    # Processing 1
    rdd = sc.parallelize(range(1000))
    print(rdd.mean())

    # Processing 2
    sdf = spark.read.option('header','true').csv(file_1, sep=';', encoding='utf-8')
    sdf_2 = sdf.repartition(partitionings_number, 'Zone[3-2]')
    sdf_2.write.saveAsTable('CSVBuckets', format='csv', sep=';', mode='overwrite', path=output_path, header='True')

if __name__ == '__main__':

    main()

现在,我有更多疑虑。 spark-submit是否会尝试连接到已经运行的spark实例,或者它会自动初始化一个? 我试过了:

spark-submit --master local[20] --driver-memory 30g

如果处理1,则上述命令似乎有效,但处理2

则无效
spark-submit --master spark:\\127.0.0.1:7077 --driver-memory 30g

上面的命令引发了spark contex初始化的异常。是因为我没有运行任何火花实例吗?

为了完成处理2,我如何通过python作业传递file_1?我试过 - 没有成功的文章。

感谢你们的时间!

0 个答案:

没有答案