Pyspark 读取 csv - NameError: name 'spark' is not defined

Posted

技术标签:

【中文标题】Pyspark 读取 csv - NameError: name \'spark\' is not defined【英文标题】:Pyspark reads csv - NameError: name 'spark' is not definedPyspark 读取 csv - NameError: name 'spark' is not defined 【发布时间】:2016-11-23 12:24:16 【问题描述】:

我正在尝试在 databricks 中运行以下代码,以调用 spark 会话并使用它打开 csv 文件:

spark
fireServiceCallsDF = spark.read.csv('/mnt/sf_open_data/fire_dept_calls_for_service/Fire_Department_Calls_for_Service.csv', header=True, inferSchema=True)

我收到以下错误:

NameError:name 'spark' is not defined

知道可能出了什么问题吗?

我也试过跑:

 from pyspark.sql import SparkSession

但得到以下回应:

ImportError: cannot import name SparkSession

如果有帮助,我将尝试遵循以下示例(如果您从 17:30 开始观看,您会更好地理解): https://www.youtube.com/watch?v=K14plpZgy_c&list=PLIxzgeMkSrQ-2Uizm4l0HjNSSy2NxgqjX

【问题讨论】:

以防万一:link 我正在使用数据块笔记本。我正在关注这个例子(如果你跳过它直到 17:00 更容易理解):youtube.com/… 我什至无法通过以下代码导入它: from pyspark.sql import SparkSession 我得到以下信息: ImportError: cannot import name SparkSession 【参考方案1】:

我通过使用以下导入使其工作:

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

我通过查看 pyspark 代码得到了这个想法,因为我发现 read csv 在交互式 shell 中工作。

【讨论】:

【参考方案2】:

请注意您使用的示例代码适用于 Spark 版本 2.x

“spark”和“SparkSession”在 Spark 1.x 上不可用。您收到的错误消息指向可能的版本问题 (Spark 1.x)。

检查您使用的 Spark 版本。

【讨论】:

我使用的是 Spark 2.0。 这不是答案

以上是关于Pyspark 读取 csv - NameError: name 'spark' is not defined的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pyspark 数据框中读取 csv 文件时读取选定的列?

pyspark使用熊猫读取csv,如何保留标题

使用 pyspark 读取 csv

在 pySpark (2.3) 中读取本地 csv 文件

如何在 pyspark 中启用 csv 文件的多行读取

在 Pyspark 中读取 CSV 文件引发错误 FileNotFound 错误