如何在 PySpark 中从表中导入数据时排除 Header
Posted
技术标签:
【中文标题】如何在 PySpark 中从表中导入数据时排除 Header【英文标题】:How to exclude Header while importing data from a table in PySpark 【发布时间】:2021-09-21 12:34:37 【问题描述】:我是 PySpark 的新手,我正在尝试从 Hive 中存在的表中导入数据并将该数据存储到数据框中。
data_frame = spark.sql("Select * from table_name")
当我执行data_frame.show()
时,我可以看到它也在使用标头,并且标头作为一行。
谁能帮我看看如何在导入数据时跳过标题。
【问题讨论】:
【参考方案1】:我认为您已将 csv 文件数据存储到配置单元表中。因此,在从 spark 中读取时,您可以看到该标题。
你可以做一件简单的事
# Read the table data
dataFrame = spark.sql("select * from table_name")
# Convert DataFrame to RDD
rdd = dataFrame.rdd
# filter header
header = rdd.first()
newRDD = rdd.filter(lambda line: line != header)
# create the dataframe using newRDD and dataFrame schema
newDataFrame = spark.createDataFrame(newRDD, dataFrame.schema)
【讨论】:
【参考方案2】:您将指定数据具有标题的方式,因此第一个原始数据将被忽略。
spark.read.option("header", "true").load("pathToTable")
【讨论】:
以上是关于如何在 PySpark 中从表中导入数据时排除 Header的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Databricks pyspark 中导入 Excel 文件
如何在 Zeppelin notebook 和 pyspark 中导入 Delta Lake 模块?