生成spark模式代码/持久化和重用模式

yhqotfr8  于 2021-05-17  发布在  Spark
关注(0)|答案(1)|浏览(408)

我正在从一个parquet数据源实现一些spark结构化的流转换。为了将数据读入流Dataframe,必须指定模式(不能自动推断)。模式非常复杂,手动编写模式代码将是一项非常复杂的任务。
你能建议我们四处走走吗?目前,我正在预先创建一个批Dataframe(使用相同的数据源),spark推断模式,然后将模式保存到scala对象,并将其用作结构化流读取器的输入。
我不认为这是一个可靠或执行良好的解决方案。请建议如何自动生成模式代码,或者以某种方式将模式保存在文件中并重用它。

s4n0splo

s4n0splo1#

从文档中:
默认情况下,来自基于文件的源的结构化流需要您指定模式,而不是依赖spark自动推断模式。此限制确保流式查询使用一致的模式,即使在失败的情况下也是如此。对于特殊用例,您可以通过设置 spark.sql.streaming.schemaInferencetrue .
您还可以打开一个shell,在启用了自动模式推断的情况下读取其中一个Parquet文件,并将模式保存为json以供以后重用。你只需要做一次,所以它可能比你现在使用的类似的解决方法更快/更有效。

相关问题