**scala split遇到的坑 **
使用Scala编程很方便,常用之后就是flatMap()
flatMap与split截取字符串统计遇到的坑
val str = “1,122,xxx,shandongyin”
val file=sc.textFile(logFile)
file.flatMap(line=>line.split(",")(3))
上面代码本意是根据",“分隔,取”3“位置上的字符,即”shandongyin”,但是实际取到的值是’s’
很郁闷吧。。。仔细一想与flatMap有关,”扁平化“有关
解决方法:
file.map(line=>line.split(",")(3))
在些时候做字符串拼接做key,可能会出现相同的key却聚合不到一起的结果,尝试更换拼接的连接符
例如:
“aid”+"-"+“name"更换为"aid”+"#"+“name”