ハイブでORDERBYを使用することにより、単一のレデューサーのみを使用します。したがって、ORDERBYは非効率的です。ORDERBYに利用できる代替ソリューションはありますか。
よろしく、ラット
ハイブでORDERBYを使用することにより、単一のレデューサーのみを使用します。したがって、ORDERBYは非効率的です。ORDERBYに利用できる代替ソリューションはありますか。
よろしく、ラット
DISTRIBUTE BY と SORT BY を組み合わせて使用することをお勧めします。DISTRIBUTE BY は、特定の値を持つすべてのキーが同じデータ ノードに配置されるようにします。SORT BY は、各ノードでデータを並べ替えます。
例えば:
SELECT a, b, c
FROM table
DISTRIBUTE by a
SORT BY a, b
ORDER BY はすべてのデータを一緒に並べ替えるため、1 つのレデューサーを通過する必要があります。
SORT BYでうまくいくはずです。これにより、各レデューサー内のデータが並べ替えられるため、特定のキーの値は順序どおりになりますが、キーが順序どおりであるとは限りません。SORT BY には任意の数のレデューサーを使用できます。