DATA_ENGINEERETTE Telegram 384
Static vs Dynamic Partitioning

В Hive есть два вида партицирования: статическое и динамическое

Сначала я столкнулась с ошибкой:

Exception in thread "main" org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict


Давайте разберем на примерах

У нас есть таблица, которая партицирована по двум полям:

CREATE TABLE sales_data (...)
PARTITIONED BY (date STRING, country STRING);


Теперь пойдем вставлять данные

🤩Статическое

INSERT INTO sales_data
PARTITION (date=’2024–03–23', country=’USA’) VALUES (...);


Здесь мы заранее говорим, в какую партицию будем вставлять кусок данных

🤩 Динамическое

INSERT INTO sales_data
PARTITION (date, country)
VALUES (..., ‘2024–03–23’, ‘USA’);


Здесь Hive сам определяет по данным, которые мы вставляем

Но чтобы такое сработало, нужны 2 конфига:

.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")


По дефолту стоят false и strict. strict означает, что должна существовать хотя бы одна статическая партиция (о чем и была ошибка)
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍8🔥6😁11



tgoop.com/data_engineerette/384
Create:
Last Update:

Static vs Dynamic Partitioning

В Hive есть два вида партицирования: статическое и динамическое

Сначала я столкнулась с ошибкой:

Exception in thread "main" org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict


Давайте разберем на примерах

У нас есть таблица, которая партицирована по двум полям:

CREATE TABLE sales_data (...)
PARTITIONED BY (date STRING, country STRING);


Теперь пойдем вставлять данные

🤩Статическое

INSERT INTO sales_data
PARTITION (date=’2024–03–23', country=’USA’) VALUES (...);


Здесь мы заранее говорим, в какую партицию будем вставлять кусок данных

🤩 Динамическое

INSERT INTO sales_data
PARTITION (date, country)
VALUES (..., ‘2024–03–23’, ‘USA’);


Здесь Hive сам определяет по данным, которые мы вставляем

Но чтобы такое сработало, нужны 2 конфига:

.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")


По дефолту стоят false и strict. strict означает, что должна существовать хотя бы одна статическая партиция (о чем и была ошибка)

BY дата инженеретта


Share with your friend now:
tgoop.com/data_engineerette/384

View MORE
Open in Telegram


Telegram News

Date: |

In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. Hashtags are a fast way to find the correct information on social media. To put your content out there, be sure to add hashtags to each post. We have two intelligent tips to give you: A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. 1What is Telegram Channels? Unlimited number of subscribers per channel
from us


Telegram дата инженеретта
FROM American