-----------SparkSQL讀取Hbase表,操作DataFrame時報錯------------
-------------代碼如下---------------------
uj5u.com熱心網友回復:
目測是你有一行age為null了,試試where age is not null and age > 25uj5u.com熱心網友回復:
表的資料沒有空值,而且試了這句SQL也是同樣的錯誤。感覺不是SQL的問題,好像是與hbase整合的問題,因為不管查詢哪一列,只要用where篩選就會報這個錯誤。
uj5u.com熱心網友回復:
補充一下:同樣的表,如果從MySQL中讀取生成DataFrame,執行操作就沒有任何問題。
從Hbase中讀取,只要用到where過濾,或者用filter()方法,都會報上述錯誤。
下邊是表資料情況:
uj5u.com熱心網友回復:
你試一下Hive掛HBase外表的形式,在Hive測驗一下,再由Spark訪問Hive這個表
uj5u.com熱心網友回復:
目測是你有一行age為null了,試試where age is not null and age > 25
表的資料沒有空值,而且試了這句SQL也是同樣的錯誤。感覺不是SQL的問題,好像是與hbase整合的問題,因為不管查詢哪一列,只要用where篩選就會報這個錯誤。
你試一下Hive掛HBase外表的形式,在Hive測驗一下,再由Spark訪問Hive這個表
謝謝,我沒有用過Hive。
上面是用的Hbase-Spark.jar第三方依賴jar包,實在解決不了了,我猜測是版本兼容的問題,所以放棄了這種方法。
后來我試了試先將Hbase表讀成RDD,然后用官網上說的,以編程的方式指定 Schema,將RDD轉化為DataFrame的方式,就沒有問題了。
雖然代碼復雜了不少,靈活性也很差,但是暫時這能用這種辦法了。
uj5u.com熱心網友回復:
spark-hbase已經很久不更新了吧,這個不要用uj5u.com熱心網友回復:
目測是你有一行age為null了,試試where age is not null and age > 25
表的資料沒有空值,而且試了這句SQL也是同樣的錯誤。感覺不是SQL的問題,好像是與hbase整合的問題,因為不管查詢哪一列,只要用where篩選就會報這個錯誤。
你試一下Hive掛HBase外表的形式,在Hive測驗一下,再由Spark訪問Hive這個表
謝謝,我沒有用過Hive。
上面是用的Hbase-Spark.jar第三方依賴jar包,實在解決不了了,我猜測是版本兼容的問題,所以放棄了這種方法。
后來我試了試先將Hbase表讀成RDD,然后用官網上說的,以編程的方式指定 Schema,將RDD轉化為DataFrame的方式,就沒有問題了。
雖然代碼復雜了不少,靈活性也很差,但是暫時這能用這種辦法了。
建議還是用Hive作為HDFS系的統一結構化門面。我們這邊通過hive訪問hbase外表是沒有問題的,spark再去訪問也沒問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45826.html
標籤:Spark
上一篇:【華為云社區18年6月刊】社區“直播”欄目上線,“云視界”系列回放大派送 全球公有云編排服務哪家強?大比拼走一波
下一篇:[入門級問題]spark中操作elasticsearch,可以使用elasticsearch java client嗎
