0

我正在尝试解析存储在 Hive 表中的一些数据。

比方说。

Hive> SELECT * FROM fulldatatable LIMIT 1;

SELECT xpath( 'xml data from the previous command') SELECT src LIMIT 1;

我的问题是如何在xpath查询中加载第一个?

谢谢,

4

1 回答 1

3

您可以从第一个选择创建一个视图,然后使用 xpath UDF 查询该视图。
例如:

Initial tables:
hive> describe table1;  
id  int
f1  string  
f2  string  
f3  string  
f4  string  

hive> select * from table1;
1  <a>  <b>1</b>  <b>1</b>  </a>
2  <a>  <b>1</b>  <b>2</b>  </a>
3  <a>  <b>1</b>  <b>3</b>  </a>

Another table:

hive> describe ranks;
id    int   
text  string    

hive> select * from ranks;
1   good
2   bad
3   worst

Create a view:
hive> create view xmlout(id, line) as select id, concat(f1,f2,f3,f4) from table1;

Then:
hive> select xpath_short(x.line, 'sum(a/b)'), r.text from xmlout x 
        join ranks r on (x.id = r.id);
2   good
3   bad
4   worst
于 2013-03-07T16:58:16.950 回答