编程实现将 RDD 转换为 DataFrame 源文件内容如下(包含 id,name,age): 1,Ella,36 2,Bob,29 3,Jack,29 请将数据复制保存到 Linux 系统中,命名为 employee.txt,实现从 RDD 转换得到 DataFrame,并按“id:1,name:Ella,age:36”的格式打印出 DataFrame 的所有数据。请写出 程序代码。
时间: 2024-02-29 20:51:30 浏览: 179
spark: RDD与DataFrame之间的相互转换方法
以下是将 RDD 转换为 DataFrame 并打印数据的代码:
```python
from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
# 创建 SparkSession 对象
spark = SparkSession.builder.appName('rdd_to_df').getOrCreate()
# 读取文本文件并转换为 RDD
rdd = spark.sparkContext.textFile('employee.txt') \
.map(lambda line: line.split(',')) \
.map(lambda fields: (int(fields[0]), fields[1], int(fields[2])))
# 定义 DataFrame 的结构
schema = StructType([
StructField('id', IntegerType(), True),
StructField('name', StringType(), True),
StructField('age', IntegerType(), True)
])
# 将 RDD 转换为 DataFrame
df = spark.createDataFrame(rdd, schema)
# 打印 DataFrame 的所有数据
for row in df.collect():
print(f"id:{row['id']},name:{row['name']},age:{row['age']}")
```
注意,这里假设 employee.txt 文件已经保存到了 Linux 系统中,并且文件内容格式正确。如果文件内容格式有误,可能会导致程序运行出错。
阅读全文