【问题标题】:Writing csv with double quotes around strings (Alteryx)在字符串周围用双引号编写 csv (Alteryx)
【发布时间】:2022-01-18 00:07:33
【问题描述】:

我需要在 Azure Datalake Gen2 上使用 Alteryx 创建一个 csv 文件,从一个表中读取,该表中的字符串字段可能包含逗号。我在 Alteryx 流中使用“Azure 数据湖文件输出”连接器(据我所知,它不允许我选择 csv 分隔符)

Alteryx 仅在包含逗号的字符串字段上加上双引号(Alteryx 似乎自动使用逗号作为分隔符),但我需要 Alteryx 在所有字符串字段上加上双引号。我尝试了一个多字段公式

'"' + [_currentfield_] + '"'

但是 csv 在每个字符串字段的开头和结尾都有 3 个双引号(这是因为引号是特殊字符)。

有什么办法可以解决这个问题吗?或者有没有办法在“Azure Data Lake File Output”连接器中定义特定的分隔符?

出现问题是因为我们将从 csv 文件开始使用 PolyBase 在 Azure Synapse Analytics 中创建一个外部表。如果字符串列包含带逗号的字符串,则 Synapse 将该列识别为两列,并给出“列太多”错误。

非常感谢您的帮助!

【问题讨论】:

    标签: azure csv export-to-csv azure-synapse alteryx


    【解决方案1】:

    使用这个:

    '"'+ToString([_CurrentField_])+'"'
    

    然后,在写入 CSV 时,将输出图标中的分隔符更改为 \0

    【讨论】:

    • 非常感谢您的提示!此解决方案适用于“简单”的 csv 输出,但我使用的是“Azure Data Lake File Output”连接器,(据我所知)不允许我选择 csv 分隔符。
    【解决方案2】:

    解决了。有两种可能的解决方案,一种是 Alteryx 端,另一种是 Synapse 端。

    1. Alteryx端:最新版本2.2.0支持设置CSV分隔符,可在以下链接下载 https://community.alteryx.com/t5/Public-Community-Gallery/Azure-Data-Lake-Tools/ta-p/852262

    2. Synapse 端:在 csv 中,双引号必须在包含逗号的字符串字段上(Alteryx“Azure Data Lake File Output”连接器默认自行执行此操作);然后使用以下链接中指示的外部表脚本,确保 PolyBase 将引号内的数据理解为单个值 https://docs.microsoft.com/en-us/answers/questions/118102/polybase-load-csv-file-that-contains-text-column-w.html

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2018-10-29
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多