spark实验总结

4,5实验的问题在于spark保存和读取json的时候列名容易不是本来需要的字段名而是c1,c2这样的列名,解决办法是不要用建议读取方法而要指定读取表头。
不用spark.read_csv()而是
spark.read.format(“json”).option(“header”,“true”).load(“hdfs://node1:9000/Online_Retail_true.json”)
注意
只有rdd里面2元组这种类型的才能用reduceByKey()
flatMap的扁平化操作和map不同有时会导致不同的类型结果,这一点有待提高,还是不太懂。
new JiebaSegmenter().sentenceProcess(x._2+x.3).toArray()
.map(x => (x.toString, 1)).groupBy(
._1).map(t=>{
(t._1,t.2.size)}).toList.sortBy(._2)
关于分词时的详细操作
new JiebaSegmenter().sentenceProcess(x._2+x.3).toArray()
分词 结果是LIst(array)格式.map(x => (x.toString, 1))将单词变为(单词,1)的形式,.groupBy(
._1)按单词进行分组.map(t=>{
(t._1,t.2.size)})将数据变成(单词,单词在每篇文章中的出现次数)
.toList.sortBy(
._2)转为List按出现次数排序
val objFile=sc.objectFile(String,Int)
读取object文件(只能在spark中用rdd打开的)
致此 所有spark实验做完,以尽力。旅途完成。

关于map和flatMap的区别
可以认为flatMap是在做map后进行扁平化
map传入10行传出也是10行
flatMap则不是 一般大于10行
flatMap单纯用于一对一转换则和map相同
如果处理后是个List或者Array类型,那么就会将这个List或者Array的每个元素变成1行,也就是将这个List或者Array合在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值