我正在尝试将SQL查询转换为spark程序。在SQL查询中,我遇到了一个标记(分布=复制)。首先,我用它创建了一个配置单元查询,然后尝试执行相同的查询。
如何在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查询正确还是我需要做任何修改
答案 0 :(得分:0)
与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。