兩個dataframe,分別為df1,df2,各有兩列
請問該如何實作下面的邏輯:
for()...遍歷df1
{
for()...遍歷df2
{
fun(df1.1, df1.2 , df2.1, df2.2 ) ...fun函式,引數是兩個df 的兩列
}
}
uj5u.com熱心網友回復:
明確告訴你不行.df底層是rdd,rdd是分布式的,不能做嵌套,會出問題的.
你能說下你要實作什么功能嗎?一定要用嵌套查詢實作嗎?df提供的api不能滿足嗎?
uj5u.com熱心網友回復:
你其實是想做join吧?直接df1 df2做笛卡爾乘積,過濾想要的行后執行你的fun函式uj5u.com熱心網友回復:
df1.registerTempTable("df1");
df2.registerTempTable("df2");
DataFrame res = sqlContext.sql("select udf(df1.1,df1.2,df2.1,df2.2) as udf_result from df1 join df2 on 1=1"); // 完全笛卡爾乘積就1=1
res.show;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65964.html
標籤:Spark
上一篇:jar包提交到spark集群后mapPartition及mapPartitionWithIndex取不到資料了,大神幫忙出出招,謝謝!萌新求助
