python-将文件名添加到WholeTextFiles上的RDD行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-将文件名添加到WholeTextFiles上的RDD行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1312字,纯文字阅读大概需要2分钟。
内容图文
我一直在使用Google搜索,并尝试了几个小时而没有运气,希望大家能提供建议.
我正在将大量文件读取到Spark RDD中,并且想要将包含时间戳的文件名附加到RDD的每一行中.到目前为止,这就是我所得到的.
def append_name(x):
filename = x[0].split('\n') #take the filename
content = x[1].split('\n') #take the content
output = [(row.split(','), filename) for row in content]
flattened = [item for sublist in output for item in sublist]
return flattened
data_file = sc.wholeTextFiles("data/").flatMap(lambda l: append_name(l))
data_file.take(1)
我的输出如下所示:
[[u'25689119206459',
u'True',
u'3',
u'main',
u'used_car',
u'Huzhou',
u'False',
u'False',
u'21824706815494',
u'0',
u'http://jump.zhineng.58.com/clk?target=mv7V0A-b5HTh',
u'0\r'],
[u'file:/home/user/data/light_2016-06-01T04-02-27_node1.csv']]
仍然是列表的清单…即使我已将其展平.有什么我想念的想法吗?我还尝试使用建议的here解决方案,并获得了相同的结果.
谢谢.
解决方法:
尝试这个:
>>> def flatten(pair):
... f, text = pair
... return [line.split(",") + [f] for line in text.splitlines()]
...
>>> rdd = sc.wholeTextFiles("README.md").flatMap(flatten)
>>> for x in rdd.take(3):
... print(x)
...
['# Apache Spark', 'file:/some-path/README.md']
['', 'file:/some-path/README.md']
['Spark is a fast and general cluster computing system for Big Data. It provides', 'file:/some-path/README.md']
内容总结
以上是互联网集市为您收集整理的python-将文件名添加到WholeTextFiles上的RDD行全部内容,希望文章能够帮你解决python-将文件名添加到WholeTextFiles上的RDD行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】