web-dev-qa-db-ja.com

500GBのSQLテーブルをApacheParquetに変換する方法は?

おそらくこれは十分に文書化されていますが、これを行う方法が非常に混乱しています(多くのApacheツールがあります)。

SQLテーブルを作成するときは、次のコマンドを使用してテーブルを作成します。

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

この既存のテーブルをParquetに変換するにはどうすればよいですか?このファイルはディスクに書き込まれますか?元のデータが数GBの場合、どのくらい待つ必要がありますか?

代わりに、元の生データを寄木細工の形式にフォーマットできますか?

9
ShanZhengYang

Apache Sparkを使用してこれを行うことができます:

1.load your table from mysql via jdbc
2.save it as a parquet file

例:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df = spark.read.jdbc("YOUR_MYSQL_JDBC_CONN_STRING",  "YOUR_TABLE",properties={"user": "YOUR_USER", "password": "YOUR_PASSWORD"})
df.write.parquet("YOUR_HDFS_FILE")
7
liprais

Sqoop (の略)を使用します 平方lから持っていたおっと)。 ドキュメント からの短い抜粋:

Sqoopを使用して、MySQLやOracleなどのリレーショナルデータベース管理システム(RDBMS)またはメインフレームからHadoop分散ファイルシステム(HDFS)にデータをインポートできます。

1
Zoltan