首页 > 解决方案 > Pyspark 数据框:从 csv 加载,然后删除第一行

问题描述

我能够将 csv 文件从 Azure datalake 加载到 pyspark 数据框中。如何删除第一行并将第二行作为我的标题?

我已经看到了一些 RDD 解决方案。但我无法加载文件,并且使用以下代码出现错误,因为“RDD 为空”

items = sc.textFile(f"abfss://{container}@{storage_account_name}.dfs.core.windows.net/tmp/items.csv")
firstRow=data.first()

因此,我更喜欢使用标准火花加载,如下所示。我可以显示数据框内容。我必须删除或删除第一行并将第二行作为标题。谢谢。

items= spark.read.format("csv").load(f"abfss://{container}@{storage_account_name}.dfs.core.windows.net/tmp/items.csv", header=True)

标签: python-3.xazurecsvpysparkdatabricks

解决方案


试试这个:

这不是一个优化的解决方案,但会解决需求。

df = spark.createDataFrame([(1,2,3),(4,5,6),(7,8,9)],['a','b','c'])
df.show()

在此处输入图像描述

df1 = df.rdd.zipWithIndex().toDF().where(F.col('_2') > 0).drop('_2')
for each_col in df.columns:
     df1 = df1.withColumn(each_col, F.col('_1.'+each_col))

df1.drop('_1').show()

在此处输入图像描述


推荐阅读