Объект PipelinedRDD не имеет атрибута _get_object_id - PullRequest
0 голосов
/ 15 мая 2018

У меня возникла проблема при попытке воспроизвести пример, который я видел здесь - 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, это ноутбук Pyspark в Jupyter.

Почему происходит эта ошибка?

1 Ответ

0 голосов
/ 16 мая 2018

вы, вероятно, запускаете его на более новом кластере. Пожалуйста, обновите "sqlContext" до "spark", чтобы заставить его работать. Мы также обновим эту документацию.

Также в Spark 2.x теперь вы можете выполнять эту операцию с DataFrames, что проще. Вы можете заменить фрагмент hvac-таблицы, создающей фрагмент, следующим эквивалентом:

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