链接到 pyspark 时 Pycharm 出错:未定义名称“spark”

Posted

技术标签:

【中文标题】链接到 pyspark 时 Pycharm 出错:未定义名称“spark”【英文标题】:Error in Pycharm when linking to pyspark: name 'spark' is not defined 【发布时间】:2019-10-30 17:32:15 【问题描述】:

当我在 cmd 中运行示例代码时,一切正常。

>>> import pyspark
>>> l = [('Alice', 1)]
>>> spark.createDataFrame(l).collect()
[Row(_1='Alice', _2=1)]

但是当我在pycharm中执行代码时,我得到一个错误。

spark.createDataFrame(l).collect()
NameError: name 'spark' is not defined

当我将 Pycharm 链接到 pyspark 时可能有问题。

Environment Variable

Project Structure

Project Interpreter

【问题讨论】:

您是否缺少定义spark:from pyspark.sql import SparkSession; spark=SparkSession.builder.getOrCreate() 的部分?什么版本的火花? spark 版本:2.4.4 但是在CMD中,我也没有定义spark。 您不必在 pyspark shell 中定义它们——它们会自动为您定义 【参考方案1】:

当您从命令行启动pyspark 时,您有一个sparkSession 对象和一个sparkContext 可供您使用,分别为sparksc

为了在pycharm中使用它,你应该先创建这些变量以便你可以使用它们。

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
sc = spark.sparkContext

编辑:

请看:Failed to locate the winutils binary in the hadoop binary path

【讨论】:

之后,我收到一个新错误。 19/10/30 13:46:36 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable C:\hadoop-2.7.7\bin\winutils.exe in the Hadoop binaries. 你是如何安装 pyspark 的?我从来没有用过windows,所以我真的不知道。会很高兴查找它.. 编辑:我已经编辑了我的答案

以上是关于链接到 pyspark 时 Pycharm 出错:未定义名称“spark”的主要内容,如果未能解决你的问题,请参考以下文章

在 PyCharm 中安装 python-snappy 时出错

如何将 PyCharm 与 PySpark 链接?

如何将 PyCharm 与 PySpark 链接?

Pyspark - 将文件从本地(边缘节点)复制到 HDFS 位置时出错

pyspark - 将 .csv 文件从 url 加载到 Spark 时出错

Pyspark - 将数据保存到 Hive 表时出错“未解析的运算符'InsertIntoTable HiveTableRelation'”