当你从 Impala 那里读到
jdbc:hive2://impalajdbc。data:25004/;身份验证=NOASL
和spark sql
val rr = sparkSession.sql("SELECT item_id from someTable LIMIT 10")
它抱怨说
无法将列1转换为long:java.lang.numberformatexception:对于输入字符串:“item\u id”[info],位于org.apache.hive.jdbc.hivebaseresultset.getlong(hivebaseresultset)。java:374)[信息]位于org.apache.spark.sql.execution.datasources.jdbc.jdbcutils$。$anonfun$makegetter$9(jdbcutils)。scala:435)
我知道罪魁祸首是impala返回列的标题和结果,但是在dataframe/rddapi上使用map或filter很难消除这个问题,因为使用这些操作符需要首先解析结果
还有其他的options:i can 尝试更改配置单元配置以禁用返回头,这是最后的手段。
1条答案
按热度按时间3yhwsihp1#
尝试使用
where
要排除的select语句中的子句item_id
标题值。示例查询: