Big Query コマンドライン ツールを使用して、(csv だけでなく)json ファイルからデータを読み込むことはできますか?GUI を使用して単純な json ファイルを読み込むことはできますが、コマンド ラインは csv を想定しており、json の指定方法に関するドキュメントはありません。
これが私が使用している単純なjsonファイルです
{"列":"値"}
スキーマ col:STRING を使用
Big Query コマンドライン ツールを使用して、(csv だけでなく)json ファイルからデータを読み込むことはできますか?GUI を使用して単純な json ファイルを読み込むことはできますが、コマンド ラインは csv を想定しており、json の指定方法に関するドキュメントはありません。
これが私が使用している単純なjsonファイルです
{"列":"値"}
スキーマ col:STRING を使用
バージョン 2.0.12 以降、bq では改行区切りの JSON ファイルをアップロードできます。これは、ジョブを実行するコマンドの例です。
bq load --source_format NEWLINE_DELIMITED_JSON datasetName.tableName data.json schema.json
前述のように、「bq help load」ですべての詳細が表示されます。
1) はい、できます
2) ドキュメントはこちらです。ステップ 3: ドキュメント内のテーブルをアップロードするに進みます。
3) --source_format フラグを使用して、csv ではなく JSON ファイルをアップロードしていることを bq に伝える必要があります。
4) 完全なコマンド構造は次のとおりです。
bq load [--source_format=NEWLINE_DELIMITED_JSON] [--project_id=your_project_id] destination_data_set.destination_table data_source_uri table_schema
bq load --project_id=my_project_bq dataset_name.bq_table_name gs://bucket_name/json_file_name.json path_to_schema_in_your_machine
5) 次の方法で、他の bq ロード バリアントを見つけることができます。
bq help load
JSON形式のデータ読み込みはサポートしていません。最新のbqバージョン2.0.9を使用したコマンドのドキュメント(bq help load
)は次のとおりです。load
USAGE: bq [--global_flags] <command> [--command_flags] [args]
load Perform a load operation of source into destination_table.
Usage:
load <destination_table> <source> [<schema>]
The <destination_table> is the fully-qualified table name of table to create, or append to if the table already exists.
The <source> argument can be a path to a single local file, or a comma-separated list of URIs.
The <schema> argument should be either the name of a JSON file or a text schema. This schema should be omitted if the table already has one.
In the case that the schema is provided in text form, it should be a comma-separated list of entries of the form name[:type], where type will default
to string if not specified.
In the case that <schema> is a filename, it should contain a single array object, each entry of which should be an object with properties 'name',
'type', and (optionally) 'mode'. See the online documentation for more detail:
https://code.google.com/apis/bigquery/docs/uploading.html#createtable
Note: the case of a single-entry schema with no type specified is
ambiguous; one can use name:string to force interpretation as a
text schema.
Examples:
bq load ds.new_tbl ./info.csv ./info_schema.json
bq load ds.new_tbl gs://mybucket/info.csv ./info_schema.json
bq load ds.small gs://mybucket/small.csv name:integer,value:string
bq load ds.small gs://mybucket/small.csv field1,field2,field3
Arguments:
destination_table: Destination table name.
source: Name of local file to import, or a comma-separated list of
URI paths to data to import.
schema: Either a text schema or JSON file, as above.
Flags for load:
/usr/local/bin/bq:
--[no]allow_quoted_newlines: Whether to allow quoted newlines in CSV import data.
-E,--encoding: <UTF-8|ISO-8859-1>: The character encoding used by the input file. Options include:
ISO-8859-1 (also known as Latin-1)
UTF-8
-F,--field_delimiter: The character that indicates the boundary between columns in the input file. "\t" and "tab" are accepted names for tab.
--max_bad_records: Maximum number of bad records allowed before the entire job fails.
(default: '0')
(an integer)
--[no]replace: If true erase existing contents before loading new data.
(default: 'false')
--schema: Either a filename or a comma-separated list of fields in the form name[:type].
--skip_leading_rows: The number of rows at the beginning of the source file to skip.
(an integer)
gflags:
--flagfile: Insert flag definitions from the given file into the command line.
(default: '')
--undefok: comma-separated list of flag names that it is okay to specify on the command line even if the program does not define a flag with that name.
IMPORTANT: flags in this list that have arguments MUST use the --flag=value format.
(default: '')