Google cloud platform 加载操作中的GCP Bigquery错误:缺少字节

Google cloud platform 加载操作中的GCP Bigquery错误:缺少字节,google-cloud-platform,google-bigquery,gzip,bq,Google Cloud Platform,Google Bigquery,Gzip,Bq,我对谷歌云平台非常陌生,我正试图在bigquery中从存储在GCP bucket中的~60000csv.gz文件创建一个表 为此,我打开了Cloud Shell,并尝试以下操作: $bq--location=US mk my_数据 $bq——地点=美国\ load--null_标记=“”\ --source_format=CSV——自动检测\ my_data.my_表gs://my_bucket/*.csv.gz 这会引发以下错误: 加载操作中的BigQuery错误:处理作业“我的作业:bqj

我对谷歌云平台非常陌生,我正试图在bigquery中从存储在GCP bucket中的~60000
csv.gz
文件创建一个表

为此,我打开了Cloud Shell,并尝试以下操作:

$bq--location=US mk my_数据
$bq——地点=美国\
load--null_标记=“”\
--source_format=CSV——自动检测\
my_data.my_表gs://my_bucket/*.csv.gz
这会引发以下错误:

加载操作中的BigQuery错误:处理作业“我的作业:bqjob”时出错 读取数据时出错,错误消息: 失败的前提条件:无效的gzip文件:缺少字节 我不知道如何找到加载文件时可能出现问题的文件。我已经检查了一些文件,它们都是有效的
.gz
文件,解压后我可以用任何csv阅读器打开它们,但我不知道如何检查所有文件以找到有问题的文件


提前感谢您对此的任何帮助

中可能存在不包含任何数据的.gz文件。您可能需要编写一个脚本,该脚本将过滤.gz文件是否有效

这个示例bash脚本将通过.gz文件执行目录循环,如果文件为空,则将其删除

for f in dir/*
do
    if [[ $(gunzip -c $f | head -c1 | wc -c) == "0" ]] 
    then
        do_file_creation
    fi
done

要在铲斗中循环,可以使用eval命令

#!/bin/bash
FILES="gsutil ls gs://YOUR_BUCKET"
RESULTS=$(eval $FILES)
for f in $RESULTS
do
  read="gsutil cat $f | zcat | wc -c"
  if [[ $(eval $read) == "0" ]]
    then
        #<Process it, Print name or Delete from bucket like below>
        delete="gsutil rm $f"
        eval $delete
    fi
done

谢谢@Rally H!您知道如何将其作为GCP bucket中目录的bash运行吗?
gsutil -m cp -R gs://YOUR_BUCKET .