Igo*_*gor 5 r apache-spark sparklyr
我正在尝试dataframe
使用 Sparklyr 的函数将一个大的(大约 580 万条记录)复制到 Spark 中copy_to
。
首先,当使用fread
( data.table
)加载数据并应用该copy_to
函数时,出现以下输出错误:
as.data.frame.default(x[[i]], optional = TRUE) 中的错误:无法将类 ""integer64"" 强制转换为 data.frame
然后,我将仅有的两列类型更改integer64
为character
,然后将as.data.frame
(它是 a data.table
,因为我使用过fread
)应用于所有数据。
copy_to
再次使用,前后等了很久才出现进度条,但是返回如下结果:
invoke_method.spark_shell_connection(sc, TRUE, class, method, 中的错误:没有返回状态。Spark R 后端可能已失败。
没有数据被复制到 Spark 中。
有什么想法吗?
我遇到过这个。不幸的是,将数据帧从内存复制到 Sparklyr 并不是导入更大数据的最佳方法。.csv
当我将数据帧保存到磁盘然后直接将其读入 Spark 时,它的工作效果会更好。
为了获得最佳性能,最好的办法是将其保存为磁盘上的 parquet 格式并进行读取。由于 Spark 使用 DAG 工作,因此如果您有更高效的磁盘数据格式供 Spark 执行操作,那么当您点击收集、插入或其他操作时,整个 Spark 操作将会更快。
归档时间: |
|
查看次数: |
764 次 |
最近记录: |