将 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子进程作为子进程运行时出错

Pyspark 数据框作为视图

如何在 Pyspark 中运行 Python 脚本

从 Docker 容器将 PySpark 连接到 Kafka

纱线集群模式下的 Pyspark

Pyspark 将函数作为参数传递给 UDF