3

私は Azure Data Lake を気に入っていますが、ドキュメントがないと採用が遅くなる可能性があります。誰かが私よりも U-SQL の経験が豊富であることを願っています。

Microsoft.Analytics.Interfaces および U-SQL インタープリターを介して利用可能なものから派生しようとしていますが、あまり運がありません。実行時に行セットのスキーマを定義するために動的SQLがサポートされていないようであり、IUpdatableRowのスキーマは読み取り専用であるため、プロセッサのアプローチは実行できません。また、U-SQL にはすぐに使える PIVOT 機能はありません。

また、行セットをすべてまとめて処理し、ピボットするカスタム アウトプッターを作成できるのではないかと考えましたが、わかりませんでした。

これは標準のピボット操作であるため、おそらく非常に簡単な方法があります。不確定な数の ColA 値と ColB 値に対して、パフォーマンスの高い方法で行セットを I から II に再形成するにはどうすればよいでしょうか?

|ColA |ColB |ColC|
|1    |A    |30  |
|1    |B    |70  |
|1    |ZA   |12  |
|2    |C    |22  |
|2    |A    |13  |

|ID   |A    |B    |C   |...... |ZA   |.....
|1    |30   |70   |0   |       |12   |
|2    |13   |0    |22  |...... |0    |.....
4

3 に答える 3

3

2017 年 3 月PIVOT / UNPIVOTの時点で、U-SQL に構文が追加されたことに注意してください。

上記のサンプル データを使用すると、次のようになります。

@t = SELECT *
     FROM(
        VALUES
        ( 1, "A", 30 ),
        ( 1, "B", 70 ),
        ( 1, "ZA", 12 ),
        ( 2, "C", 22 ),
        ( 2, "A", 13 ),
        ( 2, "ABC", 42)
     ) AS T(ColA, ColB, ColC);


@p =
    SELECT Column_0 AS id, Column_1 AS a
    FROM @t
      PIVOT (MAX(ColC) FOR ColB IN ("A" AS [A], "B" AS [B], "C" AS [C], "ZA" AS [ZA], "ABC" AS [ABC])
           ) AS pvt;


OUTPUT @p
TO "/output/pivot3.csv"
USING Outputters.Csv();
于 2017-05-01T16:12:33.640 に答える