Hive: Используйте промежуточную таблицу для чтения данных без сечения (в формате TEXTFILE
), используя следующие команды:
CREATE TABLE staging_table(
col1 colType,
col2 colType, ...
coln colType
)
STORED AS
TEXTFILE
LOCATION
'/path/of/input/data';
CREATE TABLE target_table(
col1 colType,
col2 colType, ...
coln colType
)
CLUSTERED BY(col1) INTO 10 BUCKETS
STORED AS ORC;
INSERT OVERWRITE TABLE table_bucketed
SELECT
col1, col2, ..., coln
FROM
staging_table;
То же самое можно сделать в **Spark** DataFrame APIs
(при условии CSV
формат) как это:
df = spark.read.format("csv")
.option("inferSchema", "true")
.option("header", "true")
.option("delimiter", ",")
.option("path", "/path/of/input/data/")
.load()
df.write.format("orc")
.option("path", "/path/of/output/data/")
.save()