首页 文章

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

提问于
浏览
1

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

有没有选择将其保存为简单的字符串? (为了保存,我使用Outputters.Csv()) .

OR:

然后我将数据(使用Azure Data Factory)复制到SQL数据库中 . 是否有选项将此文本存储为数据库中的varchar / text数据类型?我发现DF有decodeBase64()函数https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions#conversion-functions但我不知道如何在复制时使用它 .

1 回答

  • 0

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

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

相关问题