2017-06-07 7 views
0

2つのspark DataFrames、csv_dfother_dfを指定すると、それらに参加してから、csv_dfの行が結合で失われていることがわかります。ここでpyspark DataFrame join後に失われた行を見つけよう

は、私が試したものです:

AttributeError: 'DataFrame' object has no attribute '_get_object_id' 

は私が間違って何をやっている:

csv_df = self.sqlContext.read.load('csv_table.parquet') 
    csv_df = csv_df.withColumn(
     "mid", monotonically_increasing_id() 
    ) 
    other_df = self.sqlContext.read.load('other_table.parquet') 
    joined = csv_df.join(other_df, ['col1', 'col2']) 
    found_rows = joined.select('mid').distinct() 
    not_found_ids = csv_df.where(~csv_df.mid.isin(found_rows)) 

これは私に次のエラーを与えますか?結合されていない行を取得するためにコードを修正するにはどうすればよいですか?

答えて

0

私はまだ私の上記の投稿のコードが動作しない理由を知っていただきたいと思いますが、私はちょうど別のは私の質問に答えるために参加しないことを実現しました:

csv_df = self.sqlContext.read.load('csv_table.parquet') 
csv_df = csv_df.withColumn(
    "mid", monotonically_increasing_id() 
) 
other_df = self.sqlContext.read.load('other_table.parquet') 
joined = csv_df.join(other_df, ['col1', 'col2']) 
found_rows = joined.select('mid').distinct() 
not_found_rows = csv_df.selectExpr('mid').subtract(found_rows) 
not_found_ids = csv_df.join(not_found_rows, 'mid') 
関連する問題