2017-06-29 7 views
0

私はsqoopでハイブテーブルを作成しインポートし、pysparkを使用してデータを取得します。テーブルは、1つの文字列フィールド、1つのintフィールド、および複数のfloatフィールドで構成されます。私は色相ハイブSQLクエリによって全体のデータを取得することができます。しかし、私がpyspark sqlでプログラムしている間は、non-floatフィールドを表示することができ、floatフィールドは常にnull値を表示します。 HUEハイブSQL結果: enter image description hereSparkSqlはハイブテーブルから浮動小数点型フィールド値を取得します

ツェッペリンpyspark出力: enter image description here

ハイブテーブルの詳細:

enter image description here enter image description here

答えて

1

は、私は最終的に原因を見つけました。 mysqlからsqoop経由でこれらのテーブルをインポートするからです。元のテーブルの列は大文字で、ハイブではすべて自動的に小文字に変換されます。変換されたすべてのフィールドの値がsparksqlで取り出すことができませんでした。 (ただし、HUEハイブはこれらのデータを通常通り照会しますが、sparkのバグかもしれません)sqoopコマンドで--queryオプションを指定することで、大文字のフィールド名を小文字に変換する必要があります。つまり、--query 'MMMをmmmとしてテーブルから選択...'

関連する問題