如何在 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 文件

无法在 pyspark 中导入 pyarrow

如何在 Zeppelin notebook 和 pyspark 中导入 Delta Lake 模块?

如何在下一个 js 中从节点模块外部的文件夹中导入模块

如何在 Vue+webpack+vue-loader 项目中从不同的 js 文件中导入函数

在 sqoop 中从 RDBMS 导入选定的表