【问题标题】:'PipelinedRDD' object has no attribute 'sparkSession' when creating dataframe in pyspark在 pyspark 中创建数据框时,“PipelinedRDD”对象没有属性“sparkSession”
【发布时间】:2018-03-31 05:29:37
【问题描述】:

我正在 Spyder Python IDE 中使用 Pyspark,我正在尝试执行下一个代码片段:

prueba_2 = sqlContext.createDataFrame(...)

但是当我运行它时,我得到了下一个错误:

AttributeError: 'PipelinedRDD' object has no attribute 'sparkSession'

我还有下面的代码片段:

conf=SparkConf()

conf.set("spark.executor.memory", "1g")

conf.set("spark.cores.max", "2")

conf.setAppName("name")
sc = SparkContext('local', conf=conf) 

spark = SparkSession\
 .builder\
 .appName("name")\
 .getOrCreate()

发生了什么?我该如何解决?

【问题讨论】:

    标签: python apache-spark dataframe pyspark spyder


    【解决方案1】:

    不需要同时使用SparkContextSparkSession 来初始化Spark。由于SparkSession 是较新的推荐方式,请使用该方式:

    spark = SparkSession\
      .builder\
      .config("spark.executor.memory","1g")\
      .config("spark.cores.max","2")\
      .appName("name")\
      .getOrCreate()
    

    createDataFrame 可以通过以下方式访问:

    prueba_2 = spark.createDataFrame(...)
    

    如果你必须使用底层的SparkContext,你可以简单地使用spark.sparkContext

    【讨论】:

    • 我做到了,但是当我想执行“sc.textFile(path)”等其他方法时,因为我没有“sc”对象(SparkContext 对象),如果我尝试运行“spark.textFile(path)”我得到错误:“SparkSession”对象没有属性“textFile”。
    • @jartymcfly 在答案的最后部分添加了有关此的更多信息。
    猜你喜欢
    • 2017-04-30
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多