2

Hadoop とビッグデータ テクノロジは初めてです。parquet ファイルを avro ファイルに変換し、そのデータを読み取るのが好きです。いくつかのフォーラムを検索したところ、AvroParquetReader の使用が提案されました。

AvroParquetReader<GenericRecord> reader = new AvroParquetReader<GenericRecord>(file);
GenericRecord nextRecord = reader.read();

しかし、AvroParquetReader を含める方法がわかりません。まったくインポートできません。

spark-shell を使用してこのファイルを読み取ることができ、それを何らかの JSON に変換し、その JSON を avro に変換できます。しかし、私はより簡単な解決策を探しています。

4

1 に答える 1

4

Spark DataFrames を使用できる場合は、Apache Spark でネイティブに寄木細工のファイルを読み取ることができます (例: Python 疑似コード)。

df = spark.read.parquet(...) 

spark-avroファイルを保存するには、 Spark パッケージを使用できます。DataFrame を avro として書き出すには、次のようになります。

df.write.format("com.databricks.spark.avro").save("...")

spark-avroお使いのバージョンの Spark クラスターに適切なバージョンの Spark パッケージを含める必要があることを忘れないでください(たとえば、3.1.0-s2.11 はspark-avro、デフォルトの Spark 2.0 クラスターと一致する Scala 2.11 を使用するパッケージ 3.1 に対応します)。パッケージの使用方法の詳細については、https://spark-packages.org/package/databricks/spark-avroを参照してください。

いくつかの便利なリファレンスは次のとおりです。

  1. Spark SQL プログラミング ガイド
  2. spark-avro Spark パッケージ。
于 2016-12-23T07:26:32.760 に答える