azure - 将 csv 文件加载到 Azure Databricks 中的 Apache Spark 数据帧时跳过第一行

标签 azure apache-spark azure-databricks

在我的Azure Databricks笔记本,以下代码正确地将以下数据加载到 Azure Apache Spark DataFrame .

问题:如何跳过 DataFrame 中的第一行- 在数据加载过程中还是在数据加载到数据帧之后?

目标:文件有数百万行需要加载到 SQL 数据库(第一行除外)。文件太大,无法在记事本或 Excel 中打开。该过程最终需要自动化。

.CSV 文件:

HD|20211210
DT|D-|12/22/2017|12/22/2017 09:41:45.828000|11/01/2017|01/29/2018 14:46:10.666000|1.2|1.2|ABC|ABC|123|123|4554|023|11/01/2017|ACDF|First|0012345||f|ABCD|ABCDEFGH|ABCDEFGH||||
DT|D-|12/25/2017|12/25/2017 09:24:20.202000|12/13/2017|01/29/2018 07:52:23.607000|6.4|6.4|ABC|ABC|123|123|4540|002|12/13/2017|ACDF|First|0012345||f|ABC|ABCDEF|ABCDEFGH||||

<强> Code :

sparkDF = spark.read.csv("/FileStore/tables/MyDataFile.csv", header="true", inferSchema="true")
display(sparkDF)

最佳答案

我尝试重现这个问题。我获取了下面的示例 CSV 文件,其第一行完全没有架构。

enter image description here

我为数据框创建了架构。

from pyspark.sql.types import *

customSchema = StructType([
                                    StructField("id", IntegerType(), True), 
                                    StructField("name", StringType(), True),
                                    StructField("brandname", StringType(), True),
                                    StructField("num1", IntegerType(), True), 
                                    StructField("num2", FloatType(), True),
                                    StructField("num3", FloatType(), True),
                                    StructField("num4", FloatType(), True),
                                    StructField("name1", StringType(), True), 
                                    StructField("name2", StringType(), True),
                                    StructField("num5", FloatType(), True)])

enter image description here

现在我将 csv 文件读入数据框。

df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").option("delimiter",",").schema(customSchema).load("/FileStore/tables/PipeSeparated-1.csv")

df.display()

enter image description here

由于架构不匹配,第一行被删除。

关于azure - 将 csv 文件加载到 Azure Databricks 中的 Apache Spark 数据帧时跳过第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70705173/

相关文章:

azure - 列出存储帐户中的所有 azure 表

pandas - PySpark SQL 中用户定义的聚合函数

python - Azure Databricks 中的多重处理

python-3.x - 带有 %run 的 Databricks 笔记本 - 不工作

azure - 将conf文件添加到Microsoft Azure中的类路径

c# - Azure管道找不到 Selenium 测试

c# - Azure 服务总线队列 - 将锁定的消息释放回队列

asp.net-mvc-3 - Azure 云服务 503 实异常(exception)部错误

scala - 从 Spark 中具有不同架构的现有数据帧创建另一个数据帧

apache-spark - Apache Spark ALS 建议评级值高于范围