table1
имеет структуру:
DESCRIBE table1;
+-------------+------------------------------------------------------------------------+
| col_name | data_type |
+-------------+------------------------------------------------------------------------+
| key | string |
| source | string |
| address | struct<address:string,zip:string,city:string,state:string,cntry:string>|
| column4 | date |
| column5 | date |
+-------------+------------------------------------------------------------------------+
Первые две строки table1
:
SELECT * FROM db.table1 limit 2;
+------+----------+-------------------------------------------------------------------------------------+--------------------+------------+--+
| key | source | address | column4 | column5 |
+------+----------+-------------------------------------------------------------------------------------+--------------------+------------+--+
| 001 | internet | {"address":" 123 FAKE ST","zip":"12345","city":"MIAMI","state":"FL","cntry":"USA"} | 2007-01-27 | 2009-12-12 |
| 002 | internet | {"address":" 234 FAKE ST","zip":"23456","city":"MIAMI","state":"FL","cntry":"USA"} | 2012-03-23 | 2014-01-30 |
+------+----------+-------------------------------------------------------------------------------------+--------------------+------------+--+
Я хочу создать новый table2
, в который я копирую table1
, но разверните структуру в столбце address
в ее пять составляющих столбцов (address
, zip
, city
, state
, cntry
) и затем создайте столбец, который будет объединение address
и zip
.
Я пытался:
CREATE TABLE table2 AS
(
SELECT
key, source,
address.address, address.zip, address.city, address.state, address.cntry,
CONCAT(address.address, ' ', address.zip),
column4, column5
FROM
db.table1
);
Но это дало мне ошибку Error: Error while compiling statement: FAILED: ParseException line 1:35 cannot recognize input near '(' 'select' 'key' in select clause (state=42000,code=40000)
table2
должно иметь структура:
DESCRIBE table2;
+-------------+------------------------------------------------------------------------+
| col_name | data_type |
+-------------+------------------------------------------------------------------------+
| key | string |
| source | string |
| address | string |
| zip | string |
| city | string |
| state | string |
| cntry | string |
| add_zip | string |
| column4 | date |
| column5 | date |
+-------------+------------------------------------------------------------------------+
и содержит все данные из table1
.
Честно говоря, я не уверен, что это правильный путь к go по поводу разделения этого struct, поэтому любая помощь будет очень полезна.