我使用pyspark(Apache的星火)的數據幀API和正在運行到以下問題:來自同一來源的加入兩個DataFrames
當我連接兩個DataFrames從同一個源數據幀,所產生的DF起源會爆炸成很多行。一個簡單的例子:
我與n
行從磁盤加載數據幀:
df = sql_context.parquetFile('data.parquet')
然後,我創建從該源的兩個DataFrames。
df_one = df.select('col1', 'col2')
df_two = df.select('col1', 'col3')
最後,我想(內)加入他們一起回來:
df_joined = df_one.join(df_two, df_one['col1'] == df_two['col1'], 'inner')
的關鍵在於col1
是獨一無二的。生成的DataFrame應該有n
行,但它確實有n*n
行。
這不會發生,當我直接從磁盤加載df_one
和df_two
。我在Spark 1.3.0上,但是這也發生在當前的1.4.0快照上。
任何人都可以解釋爲什麼會發生?
對不起,你想'df_one.merge(df_two,left_on ='col1',right_on ='col2',how ='inner')'? – EdChum
@EdChum對不起,我忘了提及我正在使用Apache Spark並編輯了這個問題來反映這一點。我擔心Spark DataFrame上沒有'merge'這樣的東西。 – karlson
好的以爲這可能是一個熊貓的問題 – EdChum