【发布时间】:2016-07-26 02:19:48
【问题描述】:
如何从 Socrata API 获取随机数据样本?也就是说,我正在尝试获取https://health.data.ny.gov/resource/s8d9-z734.json,但暂时不喜欢整个下载它,因为它非常大。
【问题讨论】:
如何从 Socrata API 获取随机数据样本?也就是说,我正在尝试获取https://health.data.ny.gov/resource/s8d9-z734.json,但暂时不喜欢整个下载它,因为它非常大。
【问题讨论】:
出于性能和缓存原因(想象一下,一堆客户端一遍又一遍地调用$order=rand() 的影响......),我们没有任何类型的rand() 或采样函数,但您可以创建自己的有一点工作的样本集:
$select=count(*) 查询以确定集合的大小rand() 提出一些偏移量$limit 和$offset 与稳定的$order 结合使用以挑选出单独的记录。例如:$order=facility_id&$limit=1&$offset=<some rand() number>
不幸的是,样本大小为 1000,这将需要对 API 进行 1001 次调用。请务必注册app token...
【讨论】:
寻找一个可以被视为随机种子的字段,例如按字母顺序排序 total_charges(即随机抽样 https://health.data.ny.gov/resource/s8d9-z734.json?$limit=1000&$order=total_charges&$offset=10000)但事实证明 Socrata 知道这是一个数字字段,尽管它在 JSON 中作为字符串返回并按数字排序。更聪明的想法,有人吗?随机抽样是开放数据中的一个重要问题:-)
【讨论】: