0
私はpysparkに取り組んでいます。ハイブテーブルからデータを読み込み、すべての列と行番号を含むpysparkデータフレームを返すクエリを書く必要があります。行番号のハイブクエリ
これは私が試したものです:
SELECT *, ROW_NUMBER() OVER() as rcd_num FROM schema_name.table_name
このクエリはハイブで正常に動作しますが、私はpysparkスクリプトから、それを実行すると、それは次のようなエラーがスローされます。
Window function row_number() requires window to be ordered, please add ORDER BY clause. For example SELECT row_number()(value_expr) OVER (PARTITION BY window_partition ORDER BY window_ordering) from table;
いくつかのソリューションを提案してください。 。
注:特定の順序で行を並べ替えることは望ましくありません。並べ替えや並べ替えを行わずにテーブルにあるすべての行の行番号が必要です。あなたがテーブルに存在するすべての行の数字を行いますmonotonicallyIncreasingId
機能を使用できるように、スパーク2.1
によって順序を設定することができます: "生成されたIDが単調に増加し、ユニークな、しかし、連続していないことが保証されています。"私は連続番号が必要です。また、提案した2番目の解決策は、このエラーをスローします。 "エラー:コンパイル中のエラー:FAILED:ParseException行1:39は、 'select' 'NULL' 'の近くの入力を'式指定で認識できません。 : –
単調に試してみることはできますか?一度試してみてrrsultを確認してください –
試みました。 –