Apache Impala で JSON

以前Oracle社員時代にOracle DBのJSON機能についてブログ書きました。

SQL> select2 JSON_VALUE( httpuritype(‘http://ergast.com/api/f1/2015/constructors/mclaren/constructorstandings.json’)..

Oracle 12c JSON機能でマクラーレン・ホンダの順位を見てみる | Oracle  Blog

同じことを Apache Impala でやってみます。UIは Hue です。誰でも試せます。

GET_JSON_OBJECT(STRING json_str, STRING selector)

Impala Miscellaneous Functions

Oracle 12c の JSON_VALUE() 関数と同等のものはImpalaでは上の GET_JSON_OBJECT()のようです。

また、Oracle DBでは httpuritype()でネットワーク経由でデータを読めましたがImpalaでは同名の関数はないので以下では文字列は上記引用部分中にあるAPIエンドポイントのレスポンスJSONをベタにコピペしてます。

image

緑の下線部が今回試したかったGET_JSON_OBJECT()関数です。結果は赤箱部分のように以前Oracleでやった時と同じになりました!

selector JSON path は

$.MRData.StandingsTable.StandingsLists[0].ConstructorStandings[0].position

でOracleで試した際と同じものです。この記法はたしか業界標準です。

中国語単漢字発音リスト on Github

漢字、汉字の発音リストとスクリプトをGithubにあげました。

image

  1. ‘叮’ という1130番目の文字は緑下線部の1種類の発音しかない。
  2. dingという小文字なので固有名詞には出てこない漢字
  3. 辞書中に20回出現するので “+20”
  4. ‘台’ の赤線部分は大文字なので地名や人名などの固有名詞中の発音。例: 台州
  5. ‘台’ の青線部分も固有名詞中の発音で上記とは声調が違うもの。例: 台湾

フォーマットが読みにくくてすみません。Githubは以下です。

single chinese character(hanzi,单汉字) pronunciation(pinyin) list.

English->Chinese open source text dictionary.

元データやスクリプトの解説は以下などにあります。

上の辞書から以下の one-liner で漢字とピンイン(pinyin,拼音)リストを生成してみました。

中国語漢字の発音一覧をオープン辞書から作成