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

标签 azure azure-data-lake azure-synapse polybase sql-data-warehouse

我在 azure data Lake 存储中有一个文件。我正在使用 Polybase 将数据从数据湖存储移动到数据仓库。 我按照here提到的所有步骤进行操作.

假设我创建了外部表External_Emp,它有 3 列:ID、名称、部门。

当我运行以下查询时:

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

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

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

最佳答案

删除外部表和外部文件格式。然后使用 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
                    )
);

关于azure - 在外部表中查询特定列时,列名称也显示为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49744096/

相关文章:

python - 重定向 URL 在 azure 上不匹配

sql-server - sequelize azure sql 数据库回滚

azure - 尝试将数据加载到 Data Lake Storage Gen1 时出现 NameOrService 未知错误

azure - 如何在Azure数据工厂复制事件中指定自动创建表的表分布?

azure - 如何在不注册 Microsoft 或 Azure 的情况下托管 Microsoft Bot?

api - GMOD Wire 上的表达式 2 中的 Microsoft Translation API 存在问题

azure - 使用 powershell 从 Adls gen1 下载文件不起作用

azure - Hadoop API使用pyspark下载文件

azure - 我一直在努力在 Azure Synapse Analytics 上找到任何相关文档,以使用 CLI 为 Azure KeyVault 提供链接服务

apache-spark - 不支持的编码 : DELTA_BYTE_ARRAY when reading from Kusto using Kusto Spark connector or using Kusto export with Spark version < 3. 3.0