我想知道是否有人可能知道如何跳过我们从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)
字符串
谢谢你,谢谢
我没有看到任何关于如何修复此错误的文档。
1条答案
按热度按时间pbpqsu0x1#
这取决于你想对这些数据做什么。默认情况下,Databricks Autoloader使用
addNewColumns
模式,当遇到新列时,它会失败,但在重新启动后,它会正确处理它们。您可以使用
rescue
或none
作为模式演化模式,如下所示。字符串
在
rescue
模式下,新列的数据将被放入一个所谓的“救援列”中,您可以在必要时分析该列,并且该过程不会失败。在
none
模式下,新列被忽略,过程不会失败。更多详情请参见文档。