如何使用 pyspark 检索文本中的列

问题描述 投票:0回答:1

我有一个像这样的文本文件数据,

Name|age|course|"A"|20|"Science"|"B"|23|"Math"|"C"|25|"Englsih"

我需要获取“姓名”、“年龄”和“课程”列,并且必须创建数据框。请任何人帮我解决这个问题。

我试过这个代码

df = spark.read.csv("test.txt")

df_split = df.withColumn("split_data", split(df["_col"], "\\|"))

df_final = df_split.select(
    col("split_data")[0].alias("Name"),
    col("split_data")[1].alias("Age"),
    col("split_data")[2].alias("Course")
)

df_final.show()

apache-spark pyspark
1个回答
0
投票

spark.read.csv(filepath, sep='|')

您作为示例给出的文件是一个文本文件,其中所有列均使用“|”分隔(管道)符号,在实践中我们通常看到平面文本文件以“,”(逗号)作为分隔符。为了处理这种特殊的文本分隔符,spark 提供了一个在函数调用中提供

sep
参数的选项,我们可以利用它来正确解析数据。

© www.soinside.com 2019 - 2024. All rights reserved.