Prima i creata tabella esterna alveare partizionata per codice e quellaalveare tabella partizionata esterno
CREATE EXTERNAL TABLE IF NOT EXISTS XYZ
(
ID STRING,
SAL BIGINT,
NAME STRING,
)
PARTITIONED BY (CODE INT,DATE STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat"
OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat"
LOCATION '/old_work/XYZ';
e poi eseguo inserto sovrascrivere su questa tabella prendere i dati da altra tabella
INSERT OVERWRITE TABLE XYZ PARTITION (CODE,DATE)
SELECT
*
FROM TEMP_XYZ;
e dopo che i contare il numero di record nell'alveare selezionare il conteggio (*) da XYZ; mi mostra 1000 record ci sono e poi ho rinominare o spostare la posizione '/ old_work/XYZ' a '/ new_work/XYZ'
e poi ho di nuovo eliminare la tabella XYZ e ha creato di nuovo indicando luogo a nuova directory significa '/ new_work/XYZ'
CREATE EXTERNAL TABLE IF NOT EXISTS XYZ
(
ID STRING,
SAL BIGINT,
NAME STRING,
)
PARTITIONED BY (CODE INT,DATE STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat"
OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat"
LOCATION '/new_work/XYZ';
Ma poi quando eseguo select count (*) dalla tabella XYZ in alveare, mostra 0 documenti penso che ho perso qualcosa, please help me su questo ?? ??
Perché non dovrebbe essere aggiornato? Sto guardando questo e non vedo alcun motivo per cui questo non funzionerebbe ... – Avius