【发布时间】:2018-07-05 16:09:10
【问题描述】:
我正在使用 sparklyr 的 spark_write_table 函数将表写入 HDFS,使用 partition_by 参数定义如何存储它们:
R> my_table %>%
spark_write_table(.,
path="mytable",
mode="append",
partition_by=c("col1", "col2")
)
但是,现在我想通过只更改一个分区来更新表,而不是再次写入整个表。
在 Hadoop-SQL 中,我会执行以下操作:
INSERT INTO TABLE mytable
PARTITION (col1 = 'my_partition')
VALUES (myvalues..)
在 sparklyr 中是否有等效的选项可以正确执行此操作?我在文档中找不到它。
重复说明:这个问题是关于在 R 中使用 sparklyr 函数执行此操作的方法,而另一个问题是关于一般 Hive 语法
【问题讨论】:
-
唯一的解决方案(通常使用 spark)可能是写入分区目录。
-
@eliasah 谢谢,但我认为 sparklyr 没有选择,我将不得不直接使用 SQL。将分区保存到临时表,然后调用 INSERT INTO TABLE mytable PARTITION。
-
我认为它不会像你所说的那样与 Metastore 一起使用 @user8371915
-
对不起,但我不认为这个问题是重复的,因为我明确地询问如何在 R 中使用 sparklyr 做到这一点。另一个链接的问题是关于如何在 Spark 中做到这一点,但我用 tidyverse 动词询问它。
标签: r hadoop apache-spark sparklyr hadoop-partitioning