sparksql-使用cast连接string和bigint上的两个表

qgelzfjb  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(444)

我有一个配置单元查询,它使用一个表中声明为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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题