为啥将聚合数据帧写入文件接收器时出现异常?

Posted

技术标签:

【中文标题】为啥将聚合数据帧写入文件接收器时出现异常?【英文标题】:Why an exception while writing an aggregated dataframe to a file sink?为什么将聚合数据帧写入文件接收器时出现异常? 【发布时间】:2020-11-01 10:08:29 【问题描述】:

我正在对流数据帧执行聚合并尝试将结果写入输出目录。但我得到一个例外说

pyspark.sql.utils.AnalysisException: 'Data source json does not support Update output mode;

我在“完整”输出模式下遇到类似的错误。

这是我的代码:

grouped_df = logs_df.groupBy('host', 'timestamp').agg(count('host').alias('total_count'))
 
result_host = grouped_df.filter(col('total_count') > threshold)
 
writer_query = result_host.writeStream \
    .format("json") \
    .queryName("JSON Writer") \
    .outputMode("update") \
    .option("path", "output") \
    .option("checkpointLocation", "chk-point-dir") \
    .trigger(processingTime="1 minute") \
    .start()

writer_query.awaitTermination()

【问题讨论】:

【参考方案1】:

根据OutputSinks 上的文档,FileSinks 仅支持“附加”模式,请参阅下表中的“支持的输出模式”。

【讨论】:

以上是关于为啥将聚合数据帧写入文件接收器时出现异常?的主要内容,如果未能解决你的问题,请参考以下文章

将 PySpark 数据帧写入 Parquet 文件时出现 Py4JJavaError

MongoDb 获取数据时出现聚合错误

从 spark(2.11) 数据帧写入 hive 分区表时出现 org.apache.hadoop.hive.ql.metadata.Hive.loadDynamicPartitions 异常

将火花数据帧写入镶木地板格式时出现内存不足错误

尝试将多个函数聚合到新列时出现意外的 KeyError Pandas

使用CsvHelper写入数据时出现异常