BigQuery:总叶子字段太多10852

时间:2019-03-26 14:13:13

标签: google-bigquery google-cloud-datastore

我正在从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个字段。导入过程是否有可能转换我的数据并创建其他字段?

2 个答案:

答案 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")