【问题标题】:How to extract a file having varbinary column in u-sql script using default Extractor?如何使用默认提取器在 u-sql 脚本中提取具有 varbinary 列的文件?
【发布时间】:2018-02-10 02:55:14
【问题描述】:

我必须提取文件中的 varbinary 列。当我试图用 byte[] 提取它时。它显示错误“转换错误。列包含无效字符”。

U-SQL 脚本:

EXTRACT Id int?,createddate DateTime?,Photo byte[] 来自@输入 使用 Extractors.Csv(quoting: true,nullEscape:"\N");

【问题讨论】:

    标签: azure-data-lake u-sql extractor varbinarymax


    【解决方案1】:

    内置的 Csv/Tsv/Text 提取器假定它们对文本数据进行操作,其中二进制内容是十六进制编码的。这是必要的,因为否则二进制文件可能包含任何描述字符。请参阅 byte[] 下的https://msdn.microsoft.com/en-us/library/azure/mt621366.aspx

    因此,如果您的照片不是十六进制编码的,则您必须编写自己的自定义提取器。

    【讨论】:

    • 嗨 Michael Rys,您能否为自定义提取器提供一些示例或链接,以便将 byte[] 用于 varchar 列。所以它会对我有所帮助。提前致谢!
    • 我不知道如何处理u-sql中的十六进制列值
    • 我也想在数据湖文件中保留相同的格式。
    • 我现在没有自定义提取器来处理其他 CSV 文件中的二进制数据。这里有一个对 JPEG 图像进行操作的示例提取器:github.com/Azure/usql/blob/master/Examples/ImageApp/Image/…。如果这仍然对您没有帮助,请给我发送一个示例文件以及您想要的内容。此外,如果您需要在不使用十六进制编码的情况下写回行集数据,您将需要一个自定义输出器(一些示例输出器也在 GitHub 存储库中)。
    • 我已经将 sql 数据作为数据湖中的文件。从那里我想提取并使用 u-sql 进行一些过滤,并将其放置在其他文件夹中。
    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多