Il catalogo di runtime Lakehouse consente di integrare Apache Spark e Apache Hive con BigQuery in formati di archiviazione come Parquet, ORC, Avro, CSV, JSON e Delta Lake. La revisione di queste compatibilità di Hive SerDe e delle origini dati Spark e delle regole di conversione dei tipi di dati ti aiuta a verificare che gli schemi delle tabelle siano allineati al catalogo di runtime Lakehouse prima di eseguire carichi di lavoro cross-engine.
Formati di archiviazione supportati tra Hive e Spark
Le sezioni seguenti descrivono la compatibilità del formato di archiviazione e dell'origine dati tra Hive, Spark e BigQuery.
Mappatura dettagliata del formato di archiviazione
BigQuery determina il formato di archiviazione di una tabella in base alla libreria input_format, output_format e SerDe nei metadati. La tabella seguente mappa queste proprietà al formato di archiviazione BigQuery.
| Libreria di formato di input, formato di output e SerDe | Formato di archiviazione BigQuery |
|---|---|
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe |
Parquet |
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat org.apache.hadoop.hive.ql.io.orc.OrcSerde |
ORC |
org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat org.apache.hadoop.hive.serde2.avro.AvroSerDe |
Avro |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.apache.hadoop.hive.serde2.OpenCSVSerde |
CSV |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.openx.data.jsonserde.JsonSerDe |
JSON |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.apache.hive.hcatalog.data.JsonSerDe |
JSON |
Compatibilità di Hive SerDe
La tabella seguente elenca la compatibilità dei formati delle tabelle Hive SerDe con BigQuery.
| Formato | Sintassi DDL di Spark SQL | Eseguibile tramite query da BigQuery |
|---|---|---|
| Parquet | CREATE TABLE ... STORED AS PARQUET |
Sì |
| ORC | CREATE TABLE ... STORED AS ORC |
Sì |
| Avro | CREATE TABLE ... STORED AS AVRO |
Sì |
| CSV | CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' |
Sì |
| JSON | CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' |
Sì |
Compatibilità delle origini dati Spark
La tabella seguente elenca la compatibilità dei formati delle tabelle delle origini dati Spark con BigQuery.
Le tabelle SerDe CSV e JSON sono eseguibili tramite query da BigQuery. Tuttavia, le tabelle delle origini dati Spark CSV e JSON non lo sono.
| Formato | Sintassi DDL di Spark SQL | Eseguibile tramite query da BigQuery |
|---|---|---|
| Parquet | CREATE TABLE ... USING PARQUET |
Sì |
| ORC | CREATE TABLE ... USING ORC |
Sì |
| Avro | CREATE TABLE ... USING AVRO |
Sì |
| Delta Lake | CREATE TABLE ... USING DELTA |
Sì |
| CSV | CREATE TABLE ... USING CSV |
No |
| JSON | CREATE TABLE ... USING JSON |
No |
Tipi di dati supportati da Spark a BigQuery
La tabella seguente mappa i tipi di dati Spark ai tipi di dati BigQuery.
| Tipo di dati Spark | Tipo di dati BigQuery |
|---|---|
BYTE o TINYINT |
INT64 |
SMALLINT o SHORT |
INT64 |
INT o INTEGER |
INT64 |
BIGINT o LONG |
INT64 |
DECIMAL o NUMERIC |
BIGNUMERIC |
FLOAT |
FLOAT64 |
DOUBLE |
FLOAT64 |
REAL |
FLOAT64 |
BOOLEAN |
BOOL |
STRING |
STRING |
VARCHAR |
STRING |
CHAR o CHARACTER |
STRING |
BINARY |
BYTES |
DATE |
DATE |
TIMESTAMP o TIMESTAMP_LTZ |
TIMESTAMP |
ARRAY |
ARRAY |
STRUCT<col_name: type1, ...> |
STRUCT<col_name: type1, ...> |
MAP<key_type, value_type> |
ARRAY<STRUCT<key: key_type, value: value_type>>Per attivare questa funzionalità, invia un'email a biglake-help@google.com. Questa operazione è necessaria solo se i carichi di lavoro utilizzano MAP. |