AttributeError: у объекта 'NoneType' нет атрибута 'persist' - PullRequest
0 голосов
/ 23 апреля 2019

Когда я пытаюсь сохранить Dataframe в pyspark, я сталкиваюсь с ошибкой AttributeError: 'NoneType' object has no attribute 'persist'.псевдокод выглядит следующим образом:

ss = SparkSession.builder.getOrCreate()
sqlDF = ss.sql(query) // query contains udf
sqlDF.persist()

Результат ss.sql(query).show(10) подобен следующему

      dt|  t|                   u| ra| tm|tra|  alg| fa|
+----------+---+--------------------+---+---+---+-----+---+
|2019-04-22|  1|0e4466fb752e0ff6a...|  2|   |   |h5_rl|   |
|2019-04-22|  1|05ce59ff55b70a805...|  4|   |   | null|   |
|2019-04-22|  1|07bc6ebd8f9d0082d...|  2|   |   |h5_rl|   |

Является ли ошибка, вызванная тем, что некоторые значения ячеек не имеют тип?Если да, то как это решить?

1 Ответ

0 голосов
/ 23 апреля 2019

Вы можете попробовать распечатать схему sqlDF с sqlDF.printSchema() и обнаружить, что какой-то столбец имеет NoneType, так что искра не знает, как их сериализовать. Это может быть вызвано тем, что все значения какого-либо столбца равны NULL, тогда искра выводит схему этого столбца как NoneType. Вы можете вручную привести столбец к нужному типу в запросе.

...