问题描述
我有一个 .csv 文件,其中包含与比特币钱包相关联的近 100 万笔交易的交易 ID(发送和接收的交易),我将其作为小标题读入 RStudio。现在我正在尝试向表中添加另一列,列出每笔交易的费用。这是通过 API 调用完成的。
例如,要获得 txid 73336c8b2f8bbf9c4165de515765463d6e835a9f3f87bf822d8bcb23c074ae7f 的费用,我必须打开:https://blockchain.info/q/txfee/73336c8b2f8bbf9c4165de515765463d6e835a9f3f87bf822d8bcb23c074ae7f 并直接读取那里的数据。
这是我当前记录前 500 笔交易费用的代码:
library(readr)
library(curl)
tx <- read_csv("transactions.csv",col_names = c("txid","amount"),skip = 0,n_max = 500)
tx$fee <- 0
for (i in 1:nrow(tx))
tx$fee[i] <- scan(paste0("https://blockchain.info/q/txfee/",tx$txid[i]))
write_csv(tx,"tx_with_fees.csv")
显然,我最大的瓶颈是访问网页所花费的时间。用于读取数据的方法似乎无关紧要(我尝试过 curl、get 和 scan)。使用上面的代码,记录每笔交易的费用大约需要 0.4 秒。
我接下来要做的是简单地打开 5 个 RStudio 实例并在每个实例中为不同的 100 行集运行代码。这样我就能够平均在 0.1 秒内处理每一行。这使速度提高了 4 倍,但我相信有比简单地打开多个 RStudio 实例更有效的并行化方法。
最好的方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)