我有一个配置单元查询,它使用一个表中声明为string的值和另一个表中声明为bigint的值连接两个表。字符串和bigint中的实际数据是相同的。
此查询在配置单元中运行良好
SELECT TABLE1.*
FROM TABLE1 LEFT OUTER JOIN TABLE2
ON TABLE1.<STRING COLUMN> = cast(TABLE2.<BIGINT COLUMN> as string)
但是当我在sparkshell中使用配置单元上下文运行相同的查询时,我得到一个类强制转换异常。
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
暂无答案!
目前还没有任何答案,快来回答吧!