使用 U-SQL 在 C# 对象中加载 JSON 文件

Load a JSON file in a C# object using U-SQL

我有一个 JSON 文件存储在 Data Lake Store 中。我可以使用 Microsoft 的 JsonExtractor 提取 JSON 文件。

是否可以在不使用 EXTRACT 命令的情况下将 JSON 文件加载到 POCO 对象中?如果我使用 EXTRACT 命令,是否可以将所有行合并到一个 C# 对象中?

下面是我想要反序列化并存储在 C# 对象中的示例 JSON 文件

{
  "sourcePath": "wasb://container@accountName.blob.core.net/Input/{*}.txt",
  "destinationPath": "wasb://container@accountName.blob.core.net/Output/myfile.txt",
  "errorPath": "wasb://container@accountName.blob.core.net/Error/error.txt",
  "schema": [
    {
      "name": "column1",
      "type": "string",
      "allowNull": true,
      "minLength": 12,
      "maxLength": 50
    },
    {
      "name": "column2",
      "type": "int",
      "allowNull": true,
      "minLength": 0,
      "maxLength": 0
    },
    {
      "name": "column3",
      "type": "bool",
      "allowNull": true,
      "minLength": 0,
      "maxLength": 0
    },
    {
      "name": "column4",
      "type": "DateTime",
      "allowNull": false,
      "minLength": 0,
      "maxLength": 0
    }
  ]
}

您可以编写自己的自定义提取器来读取数据 (input.baseStream),并且可以创建您的对象。查看 Microsoft JSON 模式提取器。

请注意,您的提取器将有 1/2 GB 的主内存限制。