23

ローカルで pyspark 1.4 のデータフレームをいじっていて、dropDuplicatesメソッドを機能させるのに問題があります。エラーを返し続けます:

「AttributeError: 'list' オブジェクトに属性 'dropDuplicates' がありません」

最新のドキュメントの構文に従っているように見えるので、その理由はよくわかりません。

#loading the CSV file into an RDD in order to start working with the data
rdd1 = sc.textFile("C:\myfilename.csv").map(lambda line: (line.split(",")[0], line.split(",")[1], line.split(",")[2], line.split(",")[3])).collect()

#loading the RDD object into a dataframe and assigning column names
df1 = sqlContext.createDataFrame(rdd1, ['column1', 'column2', 'column3', 'column4']).collect()

#dropping duplicates from the dataframe
df1.dropDuplicates().show()
4

2 に答える 2

44

インポートの問題ではありません。.dropDuplicates()間違ったオブジェクトを呼び出すだけです。のクラスはsqlContext.createDataFrame(rdd1, ...)is ですがpyspark.sql.dataframe.DataFrame、適用.collect()するとプレーンな Pythonになり、リストはメソッドlistを提供しません。dropDuplicatesあなたが望むのは次のようなものです:

 (df1 = sqlContext
     .createDataFrame(rdd1, ['column1', 'column2', 'column3', 'column4'])
     .dropDuplicates())

 df1.collect()
于 2015-06-26T03:22:43.517 に答える