spark streaming:api使用

原创
2016/08/03 17:27
阅读数 152

transformation

1.textFileStream(path)

监控hdfs中的path目录,path目录必须已经存在,path中已有的文件不会作为输入,只会把新加入的文件作为输入,一定要注意,在window中,启动eclipse中的spark应用,对监控目录的文件有记忆效果,即使你重启eclipse中的spark应用,相同的文件名也不会被监控,一定要把文件重新命名,这个坑摔的好惨。同时格式一定要为“以utf-8无BOM格式编码”才不会乱码(如果显示的是这个编码,但还是监控不到,要再次点击转换成这个编码,才能被监控的到,这又很坑),别的会乱码,而且以GB2312编码的格式文件不会被监控到,这个坑又摔的很惨很惨。”.”开头的文件是不会监控,其余的文件都会被监控,如果copy文件到监控的path目录,正好有一个_copy的临时文件被监控到,然后_copy的文件消失了,那么就会报错,说输入的文件找不到。

2.transform(x => { x.union(aa)})

通过对源DStream的RDD应用RDD的api,创建一个新的DStream。x就是Dstream中的某一步的Rdd,对x这个Rdd可以应用任何的Rdd api。还可以和外部的Rdd联合等等,从数据库取数据等。如果想对Dstream的RDD做RDD的api(不需要做统计的需求),只能使用Dstream的transform(func),这个api就是能让对每批次的RDD做操作,使用RDD的api。transform(func)能让你的代码在每批次都执行,而外面的代码(spark driver programming)是没法每批次都执行的,只能第一次执行。transformation的api:DStream中的转换(transformation)

action

println()

底层调用Dstream的take方法,所以是action类的api

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部