如何从 Socrata API 获取随机数据?

How do I get random data from Socrata API?

如何从 Socrata API 获取随机数据样本?也就是说,我正在尝试获取 https://health.data.ny.gov/resource/s8d9-z734.json,但暂时不想下载整个文件,因为它非常大。

寻找可以像随机种子一样处理的字段,例如按字母顺序排序 total_charges(即 https://health.data.ny.gov/resource/s8d9-z734.json 的随机抽样?$limit=1000&$order=total_charges& $offset=10000) 但事实证明,尽管在 JSON 中将其作为字符串返回,但 Socrata 知道这是一个数字字段并对其进行了数字排序。更聪明的想法,有人吗?随机抽样是开放数据中的一个重要问题:-)

出于性能和缓存原因(想象一下一群客户端一遍又一遍地调用 $order=rand() 的影响......),我们没有任何类型的 rand() 或采样函数,但您可以通过一些工作创建自己的示例集:

  1. 执行 $select=count(*) 查询以确定集合有多大
  2. 在本地使用 rand() 得出一些偏移量
  3. 使用 $limit$offset 结合稳定的 $order 来挑选个人记录。例如:$order=facility_id&$limit=1&$offset=<some rand() number>

不幸的是,要获得 1000 的样本大小,需要对 API 进行 1001 次调用。请务必注册 app token...