Pyspark数据框:从csv加载,然后删除第一行

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

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

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

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

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

items= spark.read.format("csv").load(f"abfss://{container}@{storage_account_name}.dfs.core.windows.net/tmp/items.csv", header=True)
python-3.x azure csv pyspark databricks
1个回答
1
投票

尝试一下:

这不是优化的解决方案,但是可以解决需求。

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

enter image description here

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()

enter image description here

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