spark RDD提取文件中数组用空格分开,第一个数据保持不变,第二第三数据相加,第四个数据提取中间值用“-”分开,输出打印保存
时间: 2024-05-14 12:14:13 浏览: 133
假设我们有一个文件`data.txt`,它的内容如下:
```
apple 1 2 2021-06-25
banana 3 4 2021-06-26
orange 5 6 2021-06-27
```
现在我们想要用Spark RDD提取这个文件中的数据,将第二和第三列相加,并将第四列的日期中的“-”替换为“/”,最终输出打印并保存到一个新的文件中。
以下是实现代码:
```python
from pyspark import SparkContext, SparkConf
# 创建SparkContext
conf = SparkConf().setAppName("extract_data")
sc = SparkContext(conf=conf)
# 读取文件并创建RDD
rdd = sc.textFile("data.txt")
# 提取数据
rdd = rdd.map(lambda x: x.split(" ")) # 用空格分割每行数据,返回一个列表
rdd = rdd.map(lambda x: (x[0], int(x[1]) + int(x[2]), x[3].replace("-", "/"))) # 将第二和第三列相加,将第四列中的“-”替换为“/”
# 打印和保存结果
for item in rdd.collect():
print(item)
rdd.saveAsTextFile("output")
```
运行上述代码后,输出结果为:
```
('apple', 3, '2021/06/25')
('banana', 7, '2021/06/26')
('orange', 11, '2021/06/27')
```
同时,结果也会保存到`output`文件夹中。
阅读全文
相关推荐

















