我正在使用sparklyr库与“spark”进行交互。存在用于将数据帧放入spark上下文中的函数。这样的函数是'dplyr::copy_to
‘和'sparklyr::sdf_copy_to
’。有什么不同?什么时候建议使用一种而不是另一种?
发布于 2020-10-19 23:24:21
它们是一样的。我会使用copy_to
而不是专业的sdf_copy_to
,因为它与其他数据源更一致,但这是风格问题。
函数copy_to
是来自dplyr
的通用函数,可用于任何实现dplyr
后端的数据源。
您可以将其与spark连接一起使用,因为sparklyr
实现了copy_to.src_spark
和copy_to.spark_connection
。它们不会向用户公开,因为您应该使用copy_to
并将其分派给正确的方法。
copy_to.src_sparck
只是调用copy_to.spark_connection
#> sparklyr:::copy_to.src_spark
function (dest, df, name, overwrite, ...)
{
copy_to(spark_connection(dest), df, name, ...)
}
<bytecode: 0x5646b227a9d0>
<environment: namespace:sparklyr>
copy_to.spark_connection
只是调用sdf_copy_to
#> sparklyr:::copy_to.spark_connection
function (dest, df, name = spark_table_name(substitute(df)),
overwrite = FALSE, memory = TRUE, repartition = 0L, ...)
{
sdf_copy_to(dest, df, name, memory, repartition, overwrite,
...)
}
<bytecode: 0x5646b21ef120>
<environment: namespace:sparklyr>
sdf_copy_to
遵循包范围的约定,即在与Spark DataFrames相关的函数前面加上前缀"sdf_"
。另一方面,copy_to
是由dplyr
提供的,sparklyr
为方便dplyr
用户提供了兼容的方法。
https://stackoverflow.com/questions/56148836
复制相似问题