この項では、XML Extensions for Hiveで提供される関数について説明します。この項の内容は次のとおりです。
XML Extensions for Hiveには、次の関数が含まれています。
次のコマンドを使用して、Hive拡張関数のオンライン・ヘルプを取得できます。
DESCRIBE FUNCTION [EXTENDED] function_name;
次の例では、xml_query
関数の簡単な説明が示されます。
hive> describe function xml_query;
OK
xml_query(query, bindings) - Returns the result of the query as a STRING array
EXTENDED
オプションを使用すると、詳細な説明と例が示されます。
hive> describe function extended xml_query;
OK
xml_query(query, bindings) - Returns the result of the query as a STRING array
Evaluates an XQuery expression with the specified bindings. The query argument must be a STRING and the bindings argument must be a STRING or a STRUCT. If the bindings argument is a STRING, it is parsed as XML and bound to the initial context item of the query. For example:
> SELECT xml_query("x/y", "<x><y>hello</y><z/><y>world</y></x>") FROM src LIMIT 1;
["hello", "world"]
.
.
.
Hive関数は、次の外部ファイル・リソースにアクセスできます。
XMLスキーマ
XMLドキュメント
XQueryライブラリ・モジュール
これらのファイルは、HTTP (http://...
構文を使用)またはローカル・ファイル・システム(file://...
構文を使用)からそれらのURIによってアドレス指定できます。次の例では、タスクのローカル作業ディレクトリに対して相対的なファイルの場所が解決されるため、bar.xsdなどのURIを使用すると、分散キャッシュに追加されたファイルにアクセスできます。
xml_query(" import schema namespace tns='http://example.org' at 'bar.xsd'; validate { ... } ", . . .
ローカル・ファイルにアクセスするには、最初に、HiveのADD FILE
コマンドを使用してそのファイルをHadoop分散キャッシュに追加します。次に例を示します。
ADD FILE /local/mydir/thisfile.xsd;
それ以外の場合は、同じネットワーク・ドライブをマウントするか、ファイルをすべてのノードに単純にコピーするなど、クラスタのすべてのノードでファイルが使用できるようにする必要があります。デフォルトのベースURIは、ローカル作業ディレクトリに設定されます。
関連項目: デフォルトのベースURIについては、次のサイトにある『XQuery 1.0:An XML Query Language』 |