ユーザー、好きな果物のコレクション、および出身地を示す一連のデータがあります。
Alice\tApple:Orange\tSacramento
Bob\tApple\tSan Diego
Charlie\tApple:Pineapple\tSacramento
さまざまな都市で果物のタイプを楽しんでいるユーザーの数を相関させる豚のクエリを作成したいと思います。上記のデータのクエリの結果は次のようになります。
Apple\tSacramento\t2
Apple\tSan Diego\t1
Orange\tSacramento\t1
Pineapple\tSacramento\t1
私が理解できない部分は、分割されたフルーツの行を同じ行の残りのデータと交差結合する方法です。
Alice\tApple:Orange\tSacramento
になります:
Alice\tApple\tSacramento
Alice\tOrange\tSacramento
TOKENIZEを使用して、文字列'Apple:Orange'をタプル('Apple'、'Orange')に分割できることは知っていますが、そのタプルと残りの行の外積を取得する方法がわかりません('Apple'、'Orange')。 「アリス」)。
私が思いついた力ずくの解決策の1つは、ストリーミングを使用して外部プログラムを介して入力コレクションを実行し、「クロス結合」を処理して、行ごとに複数の行を生成することです。
ただし、これは不要のようです。より良いアイデアはありますか?