将PySpark作为脚本运行

时间:2016-07-26 17:56:43

标签: python apache-spark pyspark parquet

我是spark / pyspark的新手,需要将它集成到管道中。我已经设法组装了需要在终端中运行的代码。现在,我想将此代码作为脚本执行。但是,当我运行python样式pyspark -c cmds.py时,我得到Error: Invalid argument to --conf: cmds.py。 我查看spark-submit --master local cmds.py,但它返回

File "/path/cmd.py", line 4, in <module>
    sparkValues = SQLContext.read.parquet('/a/file/ranks.parquet');
AttributeError: 'property' object has no attribute 'parquet'

这里最简单的解决方案是什么? 这是cmds.py

from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext

sparkValues = SQLContext.read.parquet('/a/file/ranks.parquet');
pandaValues = sparkValues.toPandas();
pandaValues.to_csv('/a/file/ranks.csv');

可能有更好的方法将文件转换为csv,但Python对我来说最简单。

解决了:

This帮助将pyspark调用实现到我的python管道中。无需外部呼叫......

1 个答案:

答案 0 :(得分:0)

我回答的有点晚了,但如果你在pyspark 2.0.0中尝试一些东西,下面的内容可能会有所帮助。

提交pyspark代码:

spark-submit --master mastername samplecode.py

如果您已经安装了longn,或者如果您使用的是AWS EMR,则不必提及主人,因为纱线会照顾它。

samplecode.py中的代码如下所示:

# intialize sparkSession
from pyspark.conf import SparkConf
from pyspark.sql import SparkSession
spark =SparkSession.builder.config(conf=SparkConf()).appName("yourappnam").getOrCreate()
df = spark.sql("select * from abc")