嵌套 json 中的结构化流式传输不同模式

Aji*_*nan 2 apache-spark spark-streaming apache-spark-sql spark-structured-streaming

您好,我有一个场景,传入的消息是一个 Json,其标题为表名,数据部分包含表列数据。现在我想将其写入镶木地板到单独的文件夹,例如 /emp/dept。我可以通过根据表名聚合行来在常规流式传输中实现此目的。但在结构化流媒体中我无法分割它。我怎样才能在结构化流媒体中实现这一点。

{"tableName":"employee","data":{"empid":1","empname":"john","dept":"CS"} {"tableName":"employee","data": {"empid":2","empname":"james","dept":"CS"} {"tableName":"dept","data":{"dept":"1","deptname": "CS","desc":"计算机科学系"}

Aji*_*nan 6

我通过循环遍历预期表的列表来完成这项工作,然后为每个表过滤数据帧中的记录并应用特定于表的模式和编码器,然后写入接收器。因此,读取仅发生一次,并且对于每个表 writeStream 将被调用并且其工作正常。感谢所有的帮助

这也负责基于表的 parquet 输出文件夹的动态分区。