我正在尝试将SQL查询转换为spark程序。在SQL查询中,我遇到了一个标记(distribution = replicate)。首先,我创建了一个hive查询,并尝试执行相同的查询。
如何在hive sql中处理此问题?代码如下所示。
create table LAAD_REFRESH_JOB_LOG
(
col1 datetime,
col2 varchar(20),
col3 varchar(20),
col4 varchar(200),
col5 int
)with (distribution = replicate);
我已经将上面的内容转换为以下内容:
create table LAAD_REFRESH_JOB_LOG(
col1 TIMESTAMP,
col2 STRING,
col3 STRING,
col4 STRING,
col5 INT
)
STORED AS PARQUET
TBLPROPERTIES ('parquet.compression'='SNAPPY');
但我该如何处理(分发=复制)。上述hve查询是否正确,或者是否需要进行任何修改
发布于 2019-04-22 19:39:34
在hdfs-site.xml中,群集的复制因子通常设置如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- Here you need to set replication factor for entire cluster. -->
</property>
你可以根据Spark Job设置它,所以我被告知,但我的建议是专注于功能,而不是担心低成本的存储。当使用S3时,更多的冗余也是显而易见的,但成本是如此之低,这是荒谬的。
从您的问题可以看出,您不清楚是使用Spark SQL还是仅使用原生Hive BTW。
https://stackoverflow.com/questions/55793389
复制相似问题