我需要您在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条记录。我还没想出匹配_百分比计算。
非常感谢任何帮助。 提前谢谢。