在查询特定列的外部表时,列名称也显示为一行

Jai*_*Jai 2 azure azure-sqldw azure-data-lake polybase sql-data-warehouse

我在azure data lake store中有一个文件.我正在使用polybase将数据从数据湖存储移动到数据仓库.我按照这里提到的所有步骤进行了操作.

假设我创建了外部表作为External_Emp,它有3列:ID,Name,Dept.

当我运行以下查询时:

select * from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后,它向我显示所有正确的记录.但是当我选择特定的列/列时,它会在一行中显示列名.例如,如果我运行以下查询:

select Name from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后输出是:

Name
-----
Name
1
2
3
Run Code Online (Sandbox Code Playgroud)

而输出应该是:

Name
------
1
2
3
Run Code Online (Sandbox Code Playgroud)

同样,当我运行查询时:

select ID, Name from External_Emp;
Run Code Online (Sandbox Code Playgroud)

然后它显示以下输出:

ID | Name
---------
ID | Name
1  | abc
2  | xyz
3  | pqr
Run Code Online (Sandbox Code Playgroud)

而输出应该是:

ID | Name
--------
1  | abc
2  | pqr
3  | xyz
Run Code Online (Sandbox Code Playgroud)

为什么在单独的行中显示列名?那是一个错误吗?

我多次检查azure数据湖中csv文件中的数据.它没有重复的列名.谢谢.

Gre*_*way 7

删除外部表和外部文件格式.然后重新创建外部文件格式,使用FIRST_ROW=2该格式将跳过文档中提到的一行:

CREATE EXTERNAL FILE FORMAT TextFileFormat
WITH
(   FORMAT_TYPE = DELIMITEDTEXT
,    FORMAT_OPTIONS    (   FIELD_TERMINATOR = '|'
                    ,    STRING_DELIMITER = ''
                    ,    DATE_FORMAT         = 'yyyy-MM-dd HH:mm:ss.fff'
                    ,    USE_TYPE_DEFAULT = FALSE
                    ,    FIRST_ROW = 2
                    )
);
Run Code Online (Sandbox Code Playgroud)