2017-03-21 3 views
1

私は、様々なタイプのデータ(例えば、圧力、温度、真/偽)からなるAzure Data Lakeに多くのcsvファイルを持っています。彼らはすべてタイムスタンプが付いているので、機械学習目的のタイムスタンプに従って、それらを1つのファイルに集める必要があります。これは、Javaで行うのは簡単です - ファイルストリームを開始し、各ファイルを開くフォルダをループし、タイムスタンプを比較して関連する値を出力ファイルに書き出し、新しい列を開始します(最初の行の最後に移動します)。各ファイル。 私はU-SQLのタイムスタンプの問題について取り組んできましたが、これをフォルダ全体で実行するのに役立つ構文を考え出すのに問題があります。ワイルドカード構文{*}はすべてのファイルを同じファイルセットとして扱いますが、各ファイルから個別に列を結合するには何らかのループを実行する必要があります。 仮想カラムを使用してこれを行う方法はありますか?ADLAのU-SQLで複数のファイルの列を追加する方法は?

答えて

1

まず、ループなどの手続き型パラダイムに基づいていない、機能的/宣言的に問題を考える必要があります。

私はあなたの質問を言い換えて、私が助けることができるかどうかを見てみましょう。タイムスタンプの付いたデータを含む多くのcsvファイルがあります。異なるファイルは同じタイムスタンプを持つ行を持ち、同じタイムスタンプ(またはタイムスタンプの範囲)のすべての行を特定のファイルに出力したいでしょうか?だから基本的にデータを再分割したいのですか?

各ファイルの形式は?それらはすべて同じスキーマか異なるスキーマを持っていますか?後者の場合、どのように区別できますか?ファイル名に基づいていますか?

はそれが正しい宣言型の修正再表示し、私の質問への回答であるなら、私はコメントで教えてください、私は次のステップに私の答えを強化します。

+0

ありがとうございます! 確かに、私は間違いなく問題を見ている問題です。 各ファイルの形式は、2つまたは3つの列から構成されています。タイムスタンプ - バリュー・ユニット。ユニット列が存在する場合もあれば、存在しない場合もあります(例:True/Falseフィールドの場合)。各ファイルは同じユニット/フィールドではありません。例えば、一つのファイルには、温度や他の空気圧や偽/別の真である可能性があります。私は、各フィールドが個別の列で、最も近いタイムスタンプによって調整されるように、これらの別々のファイルを結合していますよ。タイムスタンプは、各ファイルについてまったく同じではありません。私は意味がありますか? –

関連する問題