如何在rocks db(SST文件)上创建数据框

问题描述 投票:0回答:1

我们将文档保存在rocks-db 中。我们将把这些rocks-db sst 文件同步到S3。我想在 SST 文件上创建一个数据框,然后运行一个 sql。当用谷歌搜索时,我找不到任何相关的连接器。

做到这一点的最佳方法是什么?我们可以为此编写一个自定义数据框实现吗?我们使用 Spark 3.1.0 和 scala 2.12

(将rocks db转换为json和parquet,然后从parquet中读取数据帧非常耗时且资源密集——120个1核节点分钟。所以我不能使用这种方法)

dataframe scala apache-spark rocksdb
1个回答
0
投票

如果您知道如何使用纯 scala 代码解析文件,您只需要 Spark 将其分发到执行器上:

  1. 列出 s3 存储桶中的文件名,这将导致

    Seq[String]

  2. 将它们转换为数据集/数据框(

    spark.createDataset
    )

  3. 进行

    mapParatitions
    操作

  4. mapParatitions
    内部,初始化s3Client,使用它读取文件的文件内容。使用纯 scala 代码进行解析,输出为案例类

  5. mapParatitions
    的输出将是解析文件的数据集

© www.soinside.com 2019 - 2024. All rights reserved.