我有一个HIVE查询,它使用在一个表中声明为String而在另一个表中声明为BIGINT的值来连接两个表。 String和BIGINT中的实际数据相同。
此查询在HIVE中正常运行
SELECT TABLE1.*
FROM TABLE1 LEFT OUTER JOIN TABLE2
ON TABLE1.<STRING COLUMN> = cast(TABLE2.<BIGINT COLUMN> as string)
但是当我使用HIVE上下文在spark-shell中运行相同的查询时,我得到一个类强制转换异常。
hiveContext.sql("""SELECT TABLE1.*
FROM TABLE1 LEFT OUTER JOIN TABLE2
ON TABLE1.<STRING COLUMN> = cast(TABLE2.<BIGINT COLUMN> as string)""")
这导致:
java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.io.LongWritable