AttributeError: 'NoneType' object has no attribute 'persist'

AttributeError: 'NoneType' object has no attribute 'persist'

当我尝试在 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.printSchema() 打印出 sqlDF 的架构,并发现某些列属于 NoneType,因此 spark 不知道如何序列化它们。这可能是由于某些列的所有值都是空的,然后 spark 将该列的模式推断为 NoneType。您可以在查询中手动将列转换为所需的类型。