【问题标题】:'PipelinedRDD' object has no attribute '_get_object_id''PipelinedRDD' 对象没有属性 '_get_object_id'
【发布时间】:2018-05-15 11:26:57
【问题描述】:

我在尝试复制我在此处看到的示例时遇到问题 - https://docs.microsoft.com/en-us/azure/hdinsight/spark/apache-spark-load-data-run-query

它似乎失败了:hvacTable = sqlContext.createDataFrame(hvac) 它返回的错误是:

'PipelinedRDD' object has no attribute '_get_object_id'
Traceback (most recent call last):
  File "/usr/hdp/current/spark2-client/python/pyspark/sql/context.py", line 333, in createDataFrame
    return self.sparkSession.createDataFrame(data, schema, samplingRatio, verifySchema)
  File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1124, in __call__
    args_command, temp_args = self._build_args(*args)
  File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1094, in _build_args
    [get_command_part(arg, self.pool) for arg in new_args])
  File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py", line 289, in get_command_part
    command_part = REFERENCE_TYPE + parameter._get_object_id()
AttributeError: 'PipelinedRDD' object has no attribute '_get_object_id'

我正在按照示例学习 T,它是 Jupyter 中的 pyspark 笔记本。

为什么会出现这个错误?

【问题讨论】:

  • 试试这个:hvac.take(1)。输出是什么?
  • 谢谢史蒂文,我正要下班,所以明天我会尝试你的建议并恢复输出。亲切的问候。

标签: pyspark apache-spark-sql jupyter azure-hdinsight


【解决方案1】:

您可能在较新的集群上运行它。请将“sqlContext”更新为“spark”以使其正常工作。我们也会更新这篇文档文章。

同样在 Spark 2.x 中,您现在可以使用更简单的 DataFrame 来执行此操作。您可以将 sn-p 创建 hvac 表替换为以下等效项:

csvFile = spark.read.csv('wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv', header=True, inferSchema=True)
csvFile.write.saveAsTable("hvac")

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 2019-12-13
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多