我们将文档保存在rocks-db 中。我们将把这些rocks-db sst 文件同步到S3。我想在 SST 文件上创建一个数据框,然后运行一个 sql。当用谷歌搜索时,我找不到任何相关的连接器。
做到这一点的最佳方法是什么?我们可以为此编写一个自定义数据框实现吗?我们使用 Spark 3.1.0 和 scala 2.12
(将rocks db转换为json和parquet,然后从parquet中读取数据帧非常耗时且资源密集——120个1核节点分钟。所以我不能使用这种方法)
如果您知道如何使用纯 scala 代码解析文件,您只需要 Spark 将其分发到执行器上:
列出 s3 存储桶中的文件名,这将导致
Seq[String]
将它们转换为数据集/数据框(
spark.createDataset
)
进行
mapParatitions
操作
在
mapParatitions
内部,初始化s3Client,使用它读取文件的文件内容。使用纯 scala 代码进行解析,输出为案例类
mapParatitions
的输出将是解析文件的数据集