我正在从Google Cloud Datastore导入大约980列的一些数据。我先将其导出到Bucket,然后尝试将其导入BigQuery(使用GCP guide here)。但是,我收到错误KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
Intent intent = keyguardManager.createConfirmDeviceCredentialIntent(getString(R.string.app_name), getString(R.string.text_keyguard));
startActivityForResult(intent, ActivityMain.SETTINGS_REQUEST_CODE);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
e.printStackTrace();
return;
}
/////////////////////////////
// Timeout Return Code Here
/////////////////////////////
}
}).start();
。
我可以肯定的是,没有一个实体具有超过1000个字段。导入过程是否有可能转换我的数据并创建其他字段?
答案 0 :(得分:2)
由Managed Import/Export服务生成的架构最多包含1万个字段。因此,看起来您正在导入已经有数据的BigQuery表。 BigQuery将采用现有架构和新架构的并集。因此,即使任何给定的实体少于1000个字段,如果您所有同类型实体中所有字段名称的并集,再加上BigQuery架构中的现有字段,就可以实现。
您可以选择的一些选项包括: 1)每次导入BigQuery都要使用一个新表。 2)尝试使用projectionFields限制加载到BigQuery中的字段。
答案 1 :(得分:0)
Jim Morrison的解决方案(使用projectionFields)为我解决了这个问题。 我最终通过了我感兴趣的实体列的列表,并且只将此子集导出到BigQuery。以下命令行指令可以实现这一点。
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,4))
ax1 = fig.add_subplot(121)
ax1.set_xlabel('Credit_History')
ax1.set_ylabel('Count of Applicants')
ax1.set_title("Applicants by Credit_History")
temp1.plot(kind='bar', ax=ax1) # <---- changed
ax2 = fig.add_subplot(122)
temp2.plot(kind = 'bar', ax=ax2) # <---- changed
ax2.set_xlabel('Credit_History')
ax2.set_ylabel('Probability of getting loan')
ax2.set_title("Probability of getting loan by credit history")