問題タブ [bigquery-udf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-bigquery - BigQuery で JSON 文字列から情報を抽出する
分類アルゴリズムの結果を含むテーブルを Bigquery に保存しています。テーブル スキーマは INT, STRING で、次のようになります。
ID | 出力 |
---|---|
1001 | {'アップルサイダー': 0.7, 'コーヒー': 0.2, 'ジュース': 0.1} |
1002 | {'ブラックコーヒー':0.9, '紅茶':0.1} |
問題は、各文字列の最初 (または 2 番目または任意の順序) の要素とそのスコアを取得する方法です。JSON_EXTRACT が機能する可能性は低いと思われ、Javascript で実行できる可能性が最も高いです。ここでエレガントなソリューションがどのように見えるか疑問に思っていました。
sql - Bigquery で 2 つの要素のタプルを宣言してアクセスするにはどうすればよいですか?
information_schema.COLUMNS
テーブル名を入力として受け取り、テーブルをチェックして列名とデータ型を取得するストアド プロシージャを Bigquery で作成しています。
私の場合、各列とそのデータ型をループして、型がDATETIME
or かどうかを確認し、その列を からにTIMESTAMP
変更しようとしています。各列の結果を文字列に連結しています。これは、最終的に引数から受け取ったテーブルの選択クエリのようになります。アクティビティを実行するために、以下のストア プロシージャを作成しました。COLNAME
CAST(COLNAME AS TIMESTAMP/DATETIME) as COLNAME
&columnDatatypes ARRAY<STRING, STRING>
という 2 つの列を返すため、select クエリの結果を保持するタプルを宣言しました。column_name
data_type
ここでの問題は、2 つの要素のタプルを宣言する行でエラーに直面していることです。
DECLARE columnDatatypes ARRAY<STRING, STRING>; エラー: 構文エラー: ">" が予期されていましたが、[3:41] に "," がありました
また、配列をループしているときに、オフセットに基づいて配列の要素にアクセスすると、WHILE ループの 2 番目の IF 条件に別のエラーが表示されます。
構文エラー: 上記の IF 条件で ")" が必要ですが、[11:40] で "]" が得られました (上記の行のエラー)
以下のように、タプルを作成するためにさまざまな構文を試しました。
それらはすべて構文エラーを言っています。ここでGoogleのGCPドキュメントを検索しましたが、タプル宣言とそれらの要素へのアクセスに関する参照はありません。タプルとして使用し、インデックス位置でその要素にアクセスできる Bigquery のデータ型はありますか?
私がここでやっている間違いは何ですか、どうすれば修正できますか?