为什么我需要在 spark_read_csv() 中指定一个名称并将其分配给一个对象?
Why do I need to specify a name in spark_read_csv() and also assign it into an object?
如果我理解正确(如果不正确请纠正我)sparklyr::spark_read_csv()
应该这样使用:
my_table <- spark_read_csv(sc = my_connnection,
name = "my_table",
path = "path/to/my/data")
这在我看来(我认为是错误的)违反了 DRY。我将我的对象命名两次,一次是在函数输出的赋值中,另一次是在提供给 name
的参数中,它没有默认值并且是 "The name to assign to the newly generated table."
为什么我 'name' 我的函数输出两次?是否有一个 'spark' 对象接受幕后函数的 name
参数?是否有理由将它们命名为不同的或相同的?
您不必将其分配给对象。您可以通过名称访问它:
dplyr::tbl(sc, "some_name")
或
sc %>% spark_session() %>% invoke("sql", "SELECT * FROM my_table")
但总的来说,这是一个设计问题。 sparklyr
+ dplyr
组合将 Spark 视为数据库。当您调用 spark_read_csv
时,它会在 name
下创建一个临时的 table 供 dplyr
后端使用,
除非您按名称计划,否则您可以使用随机字符串(以避免名称冲突)。
如果我理解正确(如果不正确请纠正我)sparklyr::spark_read_csv()
应该这样使用:
my_table <- spark_read_csv(sc = my_connnection,
name = "my_table",
path = "path/to/my/data")
这在我看来(我认为是错误的)违反了 DRY。我将我的对象命名两次,一次是在函数输出的赋值中,另一次是在提供给 name
的参数中,它没有默认值并且是 "The name to assign to the newly generated table."
为什么我 'name' 我的函数输出两次?是否有一个 'spark' 对象接受幕后函数的 name
参数?是否有理由将它们命名为不同的或相同的?
您不必将其分配给对象。您可以通过名称访问它:
dplyr::tbl(sc, "some_name")
或
sc %>% spark_session() %>% invoke("sql", "SELECT * FROM my_table")
但总的来说,这是一个设计问题。 sparklyr
+ dplyr
组合将 Spark 视为数据库。当您调用 spark_read_csv
时,它会在 name
下创建一个临时的 table 供 dplyr
后端使用,
除非您按名称计划,否则您可以使用随机字符串(以避免名称冲突)。