两个dataframe,分别为df1,df2,各有两列请问该如何实现下面的逻辑:for()...遍历df1
{
 for()...遍历df2
 {
  fun(df1.1, df1.2 , df2.1, df2.2 )  ...fun函数,参数是两个df 的两列
 }
}

解决方案 »

  1.   

    明确告诉你不行.
    df底层是rdd,rdd是分布式的,不能做嵌套,会出问题的.
    你能说下你要实现什么功能吗?一定要用嵌套查询实现吗?df提供的api不能满足吗?
      

  2.   

    你其实是想做join吧?直接df1 df2做笛卡尔乘积,过滤想要的行后执行你的fun函数
      

  3.   

    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;