通过Spark程序或Hive发出的DDL语句到DDL语句的转换

时间:2019-04-22 11:06:54

标签: sql apache-spark

我正在尝试将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查询正确还是我需要做任何修改

1 个答案:

答案 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。