【问题标题】: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

我错过了什么吗?请帮忙

【问题讨论】:

    标签: apache-spark pyspark pyspark-sql


    【解决方案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字符,则过滤记录,并推送到其他临时表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多