spark RDD提取文件中数组用空格分开,第一个数据保持不变,第二第三数据相加,第四个数据提取中间值用“-”分开,输出打印保存
时间: 2024-05-14 22:14:13 浏览: 125
假设我们有一个文件`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`文件夹中。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)