2016-09-15 3 views
0

Учитывая базовую таблицу employee и таблицу, полученную от сотрудника по имени employee_salary_period, которая содержит сложный тип данных map. Как выбрать и вставить данные из employee в employee_salary_period где salary_period_map является значение ключа пара т.е. salary: periodКуст выбирает из таблицы как сложный тип

CREATE TABLE employee(
    emp_id bigint, 
    name string, 
    address string, 
    salary double, 
    period string, 
    position string 
) 
PARTITIONED BY ( 
    dept_id bigint) 
STORED AS PARQUET 


CREATE TABLE employee_salary_period(
    emp_id 
    name string, 
    salary string, 
    period string, 
    salary_period_map Map<String,String>, 
) 
PARTITIONED BY ( 
    dept_id bigint) 
STORED AS PARQUET 

Я застрял, пытаясь выяснить, как выбрать данные, как salary_period_map

ответ

1

Рассмотрите возможность использования функции str_to_map предоставляемой улей. Надеюсь, у вас есть только один ключ (зарплата) в вашей карте

select 
emp_id 
name, 
salary, 
period, 
str_to_map(concat(salary,":",period),'&',':') as salary_period_map 
from employee_salary_period 
Смежные вопросы