spark多次应用过滤器

时间:2016-10-01 15:59:34

标签: scala apache-spark apache-spark-sql

我需要您在SCALA + SPARK的以下任务中设计和编写代码模板(如果可能)。

  • 文件1:这是带有" id"的csv文件+"名称" +"描述"列。

           id,name,description
           1,a,first post in stack overflow
           2,b,second post in stack overflow 
           3,c,third post in stack overflow
           2a,b,seconds post in stack overflow 
           4,b,never posted in stack overflow
    
  • 文件2:它也是csv文件,其中包含"关键字" +"价值"柱

           keyword,value
           second,1234
           never post,0000
    

要求:

搜索file2:file1中的关键字:description,匹配concatenate file1:*,file2:" keyword" " matching_percentage" (计算它)和file2:"值",写输出csv。

  • 输出:新csv id,名称,描述,关键字,match_percentage,值

           1,a,first post in stack overflow,none,00,none
           2,b,second post in stack overflow,second,x%,1234
           3,c,third post in stack overflow,none,00,none
           2a,b,seconds post in stack overflow,second,x-%,1234 
           4,b,never posted in stack overflow,never post,y%,0000
    

我在spark sql中尝试了子串匹配

select a.all_col,b.all_col from file1 a left join file2 b on a.description like concat ('%',b.keyword,'%')

但由于Cartisan加入,需要花费大量时间(超过50分钟)。 file1有1000万条记录,file2有500条记录。我还没想出匹配_百分比计算。

非常感谢任何帮助。 提前谢谢。

0 个答案:

没有答案