SparkContext'没有属性'builder error

Posted

技术标签:

【中文标题】SparkContext\'没有属性\'builder error【英文标题】:SparkContext' has no attribute 'builder errorSparkContext'没有属性'builder error 【发布时间】:2019-09-23 10:18:41 【问题描述】:

我正在尝试从 pyspark 中的数据帧注册临时表。 代码:

from pyspark.sql import SQLContext
from pyspark import SparkContext
sc = SparkContext.builder.appName("Python Spark").getOrCreate()
sqlCtx = SQLContext()
data = sqlCtx.read.csv("D:/Customers_v01.csv", header=True, inferSchema=True)
data.registerTempTable("data")
spark.sql("SELECT * from data").show()

但这会引发错误,因为 AttributeError: type object 'SparkContext' has no attribute 'builder'。

数据看起来像

CM,503004,(d$όνυ$F|'.h*Λ!ψμ=(.ξ;      ,.ʽ|!3-2-704              ,.ʽ/8μAθr                    ,(d$όνυ<<*έθr                ,C51,CN-511450

我错过了什么吗?请帮忙

【问题讨论】:

【参考方案1】:

你需要使用这种方式。

from pyspark.sql import SparkSession

spark = SparkSession \
     .builder \
     .appName("Python Spark SQL basic example") \
     .getOrCreate()   

创建 spark 会话后,您可以通过这种方式读取 csv。

data = spark.read.csv("D:/Customers_v01.csv", header=True, inferSchema=True, encoding='ISO-8859-1')

【讨论】:

非常感谢.....是否可以将此逻辑添加到当前代码中。 df['column_name'].str.encode('ascii', 'ignore').str.decode('ascii')。请建议 我已经用 unicode 添加了示例数据。非常感谢 非常感谢,我们可以用数据框上的 where 子句过滤它吗?请建议 您的意思是过滤所有包含非 ascii 字符的列? 如果任何列包含非ASCII字符,则过滤记录,并推送到其他临时表。

以上是关于SparkContext'没有属性'builder error的主要内容,如果未能解决你的问题,请参考以下文章

Spark AttributeError:“SparkContext”对象没有属性“地图”

spark 源码分析之二 -- SparkContext 的初始化过程

使用SparkSession.builder时如何设置profiler_cls?

如何在交互式 PySpark 会话中更改 SparkContext 属性

设计模式之建造者(Builder)模式

spark textFile读取多个文件