SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件
2015-10-20 10:07
671 查看
需求
SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件
扩展
示例
SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件
扩展
class SparkContext(pyspark.SparkContext): def __init__(self, master=None, appName=None, sparkHome=None, pyFiles=None, environment=None, batchSize=0, serializer=PickleSerializer(), conf=None, gateway=None, jsc=None): pyspark.SparkContext.__init__(self, master=master, appName=appName, sparkHome=sparkHome, pyFiles=pyFiles, environment=environment, batchSize=batchSize, serializer=serializer, conf=conf, gateway=gateway, jsc=jsc) def textFiles(self, dirs): hadoopConf = {"mapreduce.input.fileinputformat.inputdir": ",".join( dirs), "mapreduce.input.fileinputformat.input.dir.recursive": "true"} pair = self.hadoopRDD(inputFormatClass="org.apache.hadoop.mapred.TextInputFormat", keyClass="org.apache.hadoop.io.LongWritable", valueClass="org.apache.hadoop.io.Text", conf=hadoopConf) text = pair.map(lambda pair: pair[1]) return text
示例
from pyspark import SparkConf from dip.spark import SparkContext conf = SparkConf().setAppName("spark_textFiles_test") sc = SparkContext(conf=conf) dirs = ["hdfs://dip.cdh5.dev:8020/user/yurun/dir1", "hdfs://dip.cdh5.dev:8020/user/yurun/dir2"] def printLines(lines): if lines: for line in lines: print line lines = sc.textFiles(dirs).collect() printLines(lines) sc.stop()
相关文章推荐
- Android的layout_weight和weightSum
- 没保存变化的数据就跳转页面,弹出对话框
- 从头认识java-1.7 单根继承与集合
- java.sql.SQLException: ORA-28001: 口令已经失效
- jQuery Validate
- 本地管理员密码解决方案 Local Admin Password Solution (LAPS)
- 本地管理员密码解决方案 Local Admin Password Solution (LAPS)
- Visual Studio 和 SVN 结合实现版本控制
- office word中删除表数据和表
- 苹果新iPhone6S登陆韩国市场 订单半小时售光
- AFNetworking3.0
- leveldb抽取写文件代码
- 关于蜘蛛结网
- .Net垃圾回收机制
- IOS中自己关于Ivar和objc_property_t的理解,整理下网上资料
- Hadoop之RPC简单实现
- PostgreSQL-psql
- HTTP必知必会
- easyui 批量 移除行,
- 无缝连续滚动