Sql 由于无法检测到“NULL”值而导致连接失败

Sql 由于无法检测到“NULL”值而导致连接失败,sql,join,hadoop,hive,Sql,Join,Hadoop,Hive,我在一个配置单元数据库中有一个表,它保存财务数据 该表有3个基本字段:符号、日期和价格 为了过滤表(主要是为了学习)到最近的股票价格,我创建了一个视图,即“最近的股票价格”,它提供了符号和最近的日期 然后,我尝试使用以下方法加入完整表和最近的价格: SELECT financials.symbol, financials.price, financials.date FROM financials JOIN recent_prices ON financials.date = recent_pr

我在一个配置单元数据库中有一个表,它保存财务数据

该表有3个基本字段:符号、日期和价格

为了过滤表(主要是为了学习)到最近的股票价格,我创建了一个视图,即“最近的股票价格”,它提供了符号和最近的日期

然后,我尝试使用以下方法加入完整表和最近的价格:

SELECT financials.symbol, financials.price, financials.date FROM financials
JOIN recent_prices
ON financials.date = recent_prices.date
AND financials.symbol = recent_prices.symbol;
当我在配置单元外壳中运行此命令时,它抛出了一个异常并失败,并显示以下消息:

失败:NullPointerException null

然后,我试图找出哪些记录可能给我带来了麻烦,因此我发布了:从符号为空、价格为空或日期为空的财务数据中选择*; 以及:从符号为空或日期为空的最近价格中选择*

这些查询都没有返回任何结果

然后,我从financials表中创建了一个视图,其中包含:

CREATE VIEW temp AS
SELECT * FROM financials WHERE
symbol IS NOT NULL AND 
date IS NOT NULL;
在那之后,我试着以最近的价格加入temp,结果很成功


如果对null连接字段的查询没有返回任何内容,怎么会发生这种情况?

我认为错误消息并不是指SQL数据中的null。这听起来像是某种应用程序错误。您使用的是什么版本的配置单元?您还可以判断表中是否有空的吗?使用Hive 0.10.0作为CDH4的一部分;我不知道你说的桌子有没有空是什么意思