【问题标题】:Pyspark dataframe: load from csv and then remove the first linePyspark 数据框:从 csv 加载,然后删除第一行
【发布时间】:2020-07-01 08:37:58
【问题描述】:

我能够将 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.x azure csv pyspark databricks


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 谢谢。我收到如下错误“AssertionError: col 应该是 Column”
    • 检查这个解决方案
    • 感谢您的帮助。我必须删除/删除第一行并将第二行作为标题。
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2014-01-25
    • 2019-06-24
    • 2022-08-11
    • 2020-09-03
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多