私は大きなtsv形式のファイル(30GB)を持っています。私はそれらのすべてのデータをGoogleのbigqueryに変換する必要があります。だから私はファイルをより小さなチャンクに分割し、これらのチャンクファイルをすべてgzipしてGoogleのクラウドストレージに移動しました。その後、GCSからデータを読み込むためにgoogle bigquery APIを呼び出しています。しかし、私はエンコーディングエラーに直面している。linuxのcmdプロンプトを使ってUnicodeエンコーディングでファイルをgzipする方法は?
file_data.part_0022.gz: Error detected while parsing row starting at position: 0. Error: Bad character (ASCII 0) encountered. (error code: invalid)
次のunixコマンドをPythonコードで分割およびgzipタスク用に使用しています。
cmd = [
"split",
"-l",
"300000",
"-d",
"-a",
"4",
"%s%s" % (<my-dir>, file_name),
"%s/%s.part_" % (<my temp dir>, file_prefix)
]
code = subprocess.check_call(cmd)
cmd = 'gzip %s%s/%s.part*' % (<my temp dir>,file_prefix,file_prefix)
logging.info("Running shell command: %s" % cmd)
code = subprocess.Popen(cmd, shell=True)
code.communicate()
ファイルが正常に分割さと(file_data.part_0001.gz、file_data.part_0002.gz、等。)をgzipedが、私は、これらのファイルをロードしようとすると、それが上記のエラーをスローしたBigQueryしています。私はそれがエンコードの問題だと思います。 分割やgzip操作中にファイルをエンコードする方法はありますか?明らかにあなたはユニコードを持っていると述べ
Error: Bad character (ASCII 0) encountered
:?あるいは我々は(ニシキヘビの方法)