更新:见下文
我已经弄清楚如何为我的数据集填写 Key Name 字段,这样我现在将写入操作减少了 2(从 8 减少)。但是我仍然有这个额外的空列“ID”。我已经尝试了 bulkloader.py 的各种配置,但我无法填充该列并希望进一步减少我的写入操作......
这是我所拥有的:
python_preamble:
- import: base64
- import: re
- import: google.appengine.ext.bulkload.transform
- import: google.appengine.ext.bulkload.bulkloader_wizard
- import: google.appengine.ext.db
- import: google.appengine.api.datastore
- import: google.appengine.api.users
transformers:
- kind: Word
connector: csv
property_map:
- property: __key__
external_name: word
export_transform: transform.key_id_or_name_as_string
- property: ID
external_name: ID
# How to configure this one to use up that silly empty column called "ID"?
- property: otherlangs
external_name: otherlangs
这是我的 csv 文件的标题和一些示例行:
$ head allting.csv
ID,word,otherlangs
100,a,it|uno|
200,aaltos,fi|aaltojen|
300,aardvark,is|jarðsvín|nl|aardvarken|
更新:好的,我发现了如何以“键名”列为代价填充“ID”列......
我将 bulkload.py 更改为如下所示:
transformers:
- kind: Word
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: id
export_transform: transform.key_id_or_name_as_string
import_transform: transform.create_foreign_key('id', key_is_id=True)
- property: word·
external_name: word·
- property: otherlangs·
external_name: otherlangs·
csv 文件如下所示:
id,word,otherlangs
100,a,it|uno|
200,aaltos,fi|aaltojen|
...
Datastore Viewer 中的输出现在如下所示:
仍然想知道是否有任何方法可以填充 ID 和“密钥名称”列并将写入操作减少到 4?