python 如何使用pyspark实现?给定一个包含姓名、年龄和城市的输入数据集如果年龄>18,请添加一个新列,填充为“Y”或“N”

x8diyxa7  于 2022-12-21  发布在  Python
关注(0)|答案(1)|浏览(124)

如何使用pyspark实现?给定一个包含姓名、年龄和城市的输入数据集,如果年龄〉18,请添加一个新列,用"Y"或"N"填充。
1.列表项
解决这使用apache pyspark

输入文本文件:

苏米特,30岁,班加罗尔卡皮尔,32岁,海得拉巴萨蒂什,16岁,金奈拉维,39岁,班加罗尔卡维塔,12岁,海得拉巴卡维亚,19岁,迈 solr

输出:

苏米特,30,班加罗尔,Y卡皮尔,32,海得拉巴,Y萨蒂什,16,钦奈,N拉维,39,班加罗尔,Y卡维塔,12,海得拉巴,N卡维亚,19,迈 solr ,Y

dfuffjeb

dfuffjeb1#

我想你应该

  • 从文本文件创建PySpark数据框
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("MyApp").getOrCreate()

df = spark.read.format("csv").option("header", "false").load("input.txt")
  • 将输入数据拆分为单独的列并重命名
df = df.withColumn("name", df[0])
df = df.withColumn("age", df[1].cast("int"))
df = df.withColumn("city", df[2])

df = df.withColumnRenamed("_1", "name").withColumnRenamed("_2", "age").withColumnRenamed("_3", "city")
  • 根据age向DataFrame添加新列并写入输出
df = df.withColumn("eligible",
                   (df["age"] > 18).cast("string").when(df["age"] > 18, "Y").otherwise("N"))

df.write.format("csv").option("header", "false").save("output.txt")

相关问题