Python Spark Pyspark Databricks未知字段异常

2sbarzqh  于 2023-11-22  发布在  Apache
关注(0)|答案(1)|浏览(129)

我想知道是否有人可能知道如何跳过我们从JSON文件中获取的记录
这里是错误
[UNKNOWN_FIELD_EXCEPTION.NEW_FIELDS_IN_RECORD_WITH_FILE_PATH]在分析期间遇到未知字段:以下是失败的代码

sent = spark.readStream.format('cloudFiles') \
  .option('cloudFiles.format', 'json') \
  .option('multiline', 'true') \
  .option('cloudFiles.inferColumnTypes', 'true') \
  .option('cloudFiles.schemaLocation', checkpoint_path) \
  .load(raw_files) \
  .withColumn('load_ts', F.current_timestamp()) \
  .writeStream \
  .format('delta') \
  .option('checkpointLocation', checkpoint_path) \
  .trigger(availableNow=True) \
  .option('mergeSchema', 'true') \
  .toTable(b_write_path)

字符串
谢谢你,谢谢
我没有看到任何关于如何修复此错误的文档。

pbpqsu0x

pbpqsu0x1#

这取决于你想对这些数据做什么。默认情况下,Databricks Autoloader使用addNewColumns模式,当遇到新列时,它会失败,但在重新启动后,它会正确处理它们。
您可以使用rescuenone作为模式演化模式,如下所示。

.option("cloudFiles.schemaEvolutionMode", "rescue")

字符串
rescue模式下,新列的数据将被放入一个所谓的“救援列”中,您可以在必要时分析该列,并且该过程不会失败。
none模式下,新列被忽略,过程不会失败。
更多详情请参见文档。

相关问题