我在azure data lake store中有一个文件。我正在使用polybase将数据从数据湖存储移动到数据仓库。 我按照here提到的所有步骤进行了操作。
我们说我创建了外部表作为External_Emp,它有3列:ID,Name,Dept。
当我运行以下查询时:
select * from External_Emp;
然后,它向我展示了所有正确的记录。 但是当我选择特定的列/列时,它会在一行中显示列名。例如,如果我运行以下查询:
select Name from External_Emp;
然后输出是:
Name
-----
Name
1
2
3
然而,输出应该是:
Name
------
1
2
3
同样,当我运行查询时:
select ID, Name from External_Emp;
然后它显示以下输出:
ID | Name
---------
ID | Name
1 | abc
2 | xyz
3 | pqr
然而,输出应该是:
ID | Name
--------
1 | abc
2 | pqr
3 | xyz
为什么在单独的行中显示列名? 这是一个错误吗?
我多次检查了天蓝色数据湖中csv文件中的数据。它没有重复的列名。 感谢。
答案 0 :(得分:7)
删除外部表和外部文件格式。然后使用FIRST_ROW=2
重新创建外部文件格式,这将跳过documentation中提到的一行:
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
)
);