是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?
Posted
技术标签:
【中文标题】是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?【英文标题】:Is it possible to use data.table on SparkR with Sparkdataframes? 【发布时间】:2018-04-22 10:58:15 【问题描述】:情况
我曾经使用 data.table 而不是 plyr 或 sqldf 在 Rstudio 上工作,因为它真的很快。现在,我正在一个 azure 集群上研究 sparkR,如果我可以在我的 spark 数据帧上使用 data.table 并且它是否比 sql 快,我想现在这样做?
【问题讨论】:
Rstudio 有一个sparklyr
包,它允许您使用带有 dplyr
的 spark 数据框。
是的,@DavidArenburg,但是可以使用 data.table 包及其习惯用法来分析 spark 数据帧,还是必须使用 dplyr?
@Avraham data.tables 作者在 h2o.ai 工作。它是一个分布式系统(基于 Spark IIRC),它不理解 R 语法,并且内置了许多 data.table 功能(感谢 Matt),例如分布式二进制搜索(参见this)。除此之外,我不确定您将如何在 Spark data.frame 上使用 data.table,除非您将其收集到一个节点。
【参考方案1】:
这是不可能的。 SparkDataFrames
是带有精简 R 接口的 Java 对象。虽然在某些有限的情况下(dapply
、gapply
)可以使用工作端 R,但那里的data.table
没有用处。
【讨论】:
谢谢,但是保留数据帧并使用 data.table 或使用 SparkDataFrames 并使用 sparklyr 或 sparkSQL 是否更快??以上是关于是否可以将 Spark 中的 data.table 与 Spark Dataframes 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何包或方法可以将 data.table R 代码转换/发送为 sql 查询以发送到数据库?
将一行中的项目与所有其他行进行比较,并使用 data.table - R 遍历所有行