csv Databricks SQL跳过行

lzfw57am  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(102)

我有4个csv文件,我想跳过前4行,从第5行开始作为标题,同时阅读所有的,使一个表了。
使用此代码

CREATE TABLE IF NOT EXISTS ${personal.schema}.${personal.source}_test
USING CSV
OPTIONS (header "true", inferSchema "false", sep ",", multiLine "true", encoding 'UTF8',recursiveFileLookup  'true', skiprows '4' )
-- Change to right storage location
LOCATION 'abfss://......"

字符串
问题是其中一个csv文件在第4行有一些输入,而其余的CSV文件在第4行为空行。我没有提到,所有的头是正确地挑选在所有的csv 3 csv文件,并从第5行开始,但对于一个csv文件,它挑选从第4行。
我该怎么解决这个问题?
我试着只从有问题的csv文件和mentioend `skip rows“5”创建单独的表,它给了我想要的输出。
如果不创建两个saparte表,然后将它们合并,我如何避免这个问题?

ulmd4ohb

ulmd4ohb1#

下面的方法将帮助您实现读取数据块中的CSV文件并从中创建一个表。
例如,我有2个文件1个文件的行从第4行开始,第二个文件从第5行开始。

**第一步:**您可以使用以下命令读取多个CSV文件

spark.read.csv("/FileStore/tables/*.csv",schema=schema).show()

字符串

输出:

**第二步:**在下面的代码中,合并CSV文件数据并创建SQL表

%sql
CREATE  TABLE  IF  NOT  EXISTS new_table02(id  Int, name varchar(50),age int, salary int)
USING CSV
OPTIONS (inferSchema "false", sep ",", multiLine "true")
LOCATION  "/FileStore/tables/*.csv"

**第三步:**忽略SQL表中的NULL值。

正如您所提到的,如果您想要一个表而不是创建两个表。您可以在使用where子句创建的表上使用select,如下所示:

%sql
Select  *  from New_table02
where  id  is  not null


相关问题