将 PySpark 作为脚本运行
Posted
技术标签:
【中文标题】将 PySpark 作为脚本运行【英文标题】:Run PySpark as script 【发布时间】:2016-07-26 17:56:42 【问题描述】:我是 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 帮助在我的 python 管道中实现了 pyspark 调用。无需外部调用...
【问题讨论】:
Ups,一次做的事情太多了。 什么解决了您的问题? This 一词的链接已损坏。请分享你是如何做的以及做了什么。 【参考方案1】:我回答得有点晚了,但是如果你在 pyspark 2.0.0 中尝试一些东西,下面的东西可能会有所帮助。
提交pyspark代码:
spark-submit --master mastername samplecode.py
如果您已经安装了 yearn,或者如果您使用的是 AWS EMR,则不必提及 master,因为 yarn 会处理它。
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")
【讨论】:
以上是关于将 PySpark 作为脚本运行的主要内容,如果未能解决你的问题,请参考以下文章
导入pyspark ETL模块并使用python子进程作为子进程运行时出错