我已从NOAA下载了天气.txt文件,如下所示:
hive> select * from weather limit 10;
然后我创建了下表:
WBAN Date Time NULL SkyCondition SkyConditionFlag NULL VisibilityFlag WeatherType WeatherTypeFlag NULL DryBulbFarenheitFlag NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULLNULL NULL NULL NULL NULL NULL NULL NULL NULL RecordType RecordTypeFlag NULL NULL NULL NULL
00102 20150101 0001 0 OVC043 10 27 -3 NULL 26 NULL -3 NULL25 NULL -4 NULL NULL NULL NULL NULL 0 NULL NULL NULL 30 NULL NULL NULL NULL NULL 30 NULL AA NULL NULL 30 NULL
00102 20150101 0101 0 OVC045 10 27 -3 NULL 26 NULL -3 NULL25 NULL -4 NULL NULL NULL NULL NULL 80 NULL NULL NULL 30 NULL NULL NULL NULL NULL 30 NULL AA NULL NULL 30 NULL
00102 20150101 0201 0 OVC047 10
现在,如果我尝试一个简单的查询,如:
hive> select Visibility from weather limit 10;
我得到如下结果,并用Null替换了一些列的名字!
blog view
正如您可能已经注意到的那样,第四列和第七列(以及之后的许多列)在它们应分别为StationType和Visibility等时倾斜为NULL!
即使我尝试过:
<?php include('header.php'); ?>
<?php
$article_id = $_POST['article'];
// echo $article_id;
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$con = mysql_connect($dbhost, $dbuser , $dbpass);
$sql = 'SELECT id,blog_title, blog_body, views FROM tinyblog where id="'. $article_id .'" ';
// UPDATE VIEWS.
mysql_query("UPDATE tinyblog SET views = views + 1 WHERE id = {$article_id}" , $con );
mysql_select_db('tinyblog');
$retval = mysql_query( $sql, $con );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
?>
<div class="article-blog-indiv">
<?php
echo '<h1>'. $row['blog_title'] .'</h1>';
echo '<p>'. $row['blog_body'] .'</p>';
?>
</div>
<?php
}
?>
<?php include('footer.php'); ?>
我将获得正确的结果,但是使用NULL列标题/名称!!!
为什么NULL列名称/标题?!
答案 0 :(得分:4)
有趣的问题,我花了一分钟才意识到正在发生的事情但是对蜂巢的正确认识实际上是显而易见的!
所以,将1和2放在一起:
Describe Weather
。建议:
尝试摆脱第一行,最好是在创建外部表之前。
答案 1 :(得分:0)
要添加到上面的Dennis的评论中,如果您使用的是CSV SerDe,则可以跳过将第一行插入表格的操作,
settings.py
手术线为:
CREATE EXTERNAL TABLE cases (
id INT,
case_number STRING,
name STRING,
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS TEXTFILE
LOCATION '/hdfs/path'
tblproperties("skip.header.line.count"="1");