【发布时间】:2019-11-10 08:05:37
【问题描述】:
我正在尝试恢复一些以 parquet 格式保存的历史备份文件,我想从中读取一次并将数据写入 PostgreSQL 数据库。
我知道备份文件是使用 spark 保存的,但是对我有一个严格的限制,即我不能在数据库机器中安装 spark 或在远程设备中使用 spark 读取 parquet 文件并使用 spark_df.write.jdbc 将其写入数据库.一切都需要在数据库机器上进行,并且在没有 spark 和 Hadoop 的情况下,只需要使用 Postgres 和 Bash 脚本。
我的文件结构类似于:
foo/
foo/part-00000-2a4e207f-4c09-48a6-96c7-de0071f966ab.c000.snappy.parquet
foo/part-00001-2a4e207f-4c09-48a6-96c7-de0071f966ab.c000.snappy.parquet
foo/part-00002-2a4e207f-4c09-48a6-96c7-de0071f966ab.c000.snappy.parquet
..
..
我希望从每个 parquet 文件夹(如 foo)中读取数据和架构,使用该架构创建一个表并将数据写入成形表,仅使用 bash 和 Postgres CLI。
【问题讨论】:
-
你可以试试 Parquet Foreign Data Wrapper github.com/adjust/parquet_fdw。您必须先从 HDFS 下载文件。
-
@RemusRusanu 这很有趣,谢谢!我将对其进行测试,但提交表明它仍在大量开发中。我正在寻找基于使用 bash 处理文件的解决方案。
标签: bash postgresql hdfs parquet