如何在spark中加入数据帧时使用地图类型列的键

时间:2016-08-29 11:18:47

标签: apache-spark-sql

我是Spark的新手,并不知道有任何其他更好的方法。我想在下面的数据框架上执行INNER连接。

data_frame_1 :

col1 : Int,
col2 : String,
col3 : Map(Int,   Map(Int,Double))

data_frame_2 :

col1 : Int,
col2 : String,
col3 : Int
  1. 我想将data_frame_1的外部地图的col3键与data_frame_2的col3一起加入。
  2. 例如:

    data_frame_1 :
    
    col1 : 99999,
    col2 : AAAAA,
    col3 : Map(4,Map(2, 0.002))
    
    data_frame_2 :
    
    col1 : 99999,
    col2 : AAAAA,
    col3 : 4
    

    我想在两个数据框中加入4。如何以这种方式加入col3。

    (data_frame_1.join(data_frame_2, data_frame_1.col("col1") ===  data_frame_2.col("col1") && data_frame_1.col("col2") ===  data_frame_2.col("col2") 
    
     && data_frame_1.????? ===  data_frame_2.col("col3")  )  )
    

    加入后的预期行:[99999, AAAAA, Map(4,Map(2, 0.002)), 99999, AAAAA]

    1. 还请建议其他任何方式吗?

0 个答案:

没有答案