如何在U-SQL中将byte []保存为字符串

时间:2018-05-24 17:41:05

标签: azure-data-lake u-sql

SQL脚本(Azure Data Lake Analytics),其中我为字符串提取了太大的文本。所以我使用byte []。但是当我将结果保存在CSV文件中时,此文本是BASE64编码的。

是否可以选择将其保存为简单字符串? (为了保存,我使用 Outputters.Csv())。

然后我将数据(使用Azure Data Factory)复制到SQL数据库中。是否有选项将此文本存储为数据库中的varchar / text数据类型?我发现DF有 decodeBase64()函数consequences for the for loop progress across the list,但我不知道如何在复制时使用它。

1 个答案:

答案 0 :(得分:0)

实际上,内置的CSV输出器使用十六进制编码而不是base64编码。虽然这可能是一个有用的选择。 Csv / Tsv / Text提取器/输出器系列期望数据是基于文本的,并且非字符代码点(如ETX或LF)仅用于分隔目的。因此,它不是编写任意字节流,而是将其序列化为十六进制编码。

如果你想在没有十六进制编码的情况下写出来,我建议你编写一个自定义输出器,它将按原样写入byte []。或者在消费方面使用十六进制解码器。我可能会在编写输出器之前尝试后者(虽然它可能是一个足够简单的输出器)。