当我试图在pyspark中坚持Dataframe
时,我遇到了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| |
某些单元格值是非类型引起的错误是什么?如果是这样,如何解决?
您可以尝试使用sqlDF
and打印出sqlDF.printSchema()
的模式,发现某些列是NoneType
,因此spark不知道如何序列化它们。它可能是由某些列的所有值都为null引起的,然后spark将该列的模式推断为NoneType
。您可以在查询中手动将列转换为所需的类型。