web-dev-qa-db-ja.com

Spark(pyspark)を使用して寄木細工のファイルを作成するにはどうすればよいですか?

私はSparkでかなり新しく、Sparkでデータフレームを寄木細工ファイルに変換しようとしましたが、まだ成功していません。 ドキュメント は、write.parquet関数を使用してファイルを作成できることを示していますが、スクリプトを実行すると、 me:AttributeError: 'RDD'オブジェクトには属性 'write'がありません

from pyspark import SparkContext
sc = SparkContext("local", "Protob Conversion to Parquet ")

# spark is an existing SparkSession
df = sc.textFile("/temp/proto_temp.csv")

# Displays the content of the DataFrame to stdout
df.write.parquet("/output/proto.parquet")

この仕事をする方法を知っていますか?

spark私が使用しているバージョンはSpark 2.0.1 Hadoop 2.7.3用にビルドされたものです。

13
ebertbm

エラーは、textFileからのSparkContextメソッドがRDDを返し、必要なのはDataFrameであったためです。

SparkSessionの内部にはSQLContextがあります。そのため、DataFrameReaderを使用してCSVファイルを正しく読み取ってから、寄木細工のファイルに変換する必要がありました。

spark = SparkSession \
    .builder \
    .appName("Protob Conversion to Parquet") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

# read csv
df = spark.read.csv("/temp/proto_temp.csv")

# Displays the content of the DataFrame to stdout
df.show()

df.write.parquet("output/proto.parquet")
28
ebertbm