我在云存储中有大约 30Gb 的数据,我想在使用 Dataproc 集群中的 Apache Hive 时进行查询。访问这些数据的最佳策略是什么。是通过gsutil将数据复制到我的主服务器并从那里访问它的最佳方法,还是我可以直接在云存储中访问它?如果是后者,如何在 Spark CLI 中指定其位置?我可以指定
location 'gs://<bucketname>'
当我跑步时
CREATE EXTERNAL TABLE
?
我在云存储中有大约 30Gb 的数据,我想在使用 Dataproc 集群中的 Apache Hive 时进行查询。访问这些数据的最佳策略是什么。是通过gsutil将数据复制到我的主服务器并从那里访问它的最佳方法,还是我可以直接在云存储中访问它?如果是后者,如何在 Spark CLI 中指定其位置?我可以指定
location 'gs://<bucketname>'
当我跑步时
CREATE EXTERNAL TABLE
?
您应该能够创建一个直接指向 Cloud Storage 中数据的外部表。这应该适用于 hive 和 Spark SQL。在许多情况下,这可能是最好的策略。
这是一个基于 Cloud Storage 中的公共数据集的示例。
CREATE EXTERNAL TABLE natality_csv (
source_year BIGINT, year BIGINT, month BIGINT, day BIGINT, wday BIGINT,
state STRING, is_male BOOLEAN, child_race BIGINT, weight_pounds FLOAT,
plurality BIGINT, apgar_1min BIGINT, apgar_5min BIGINT,
mother_residence_state STRING, mother_race BIGINT, mother_age BIGINT,
gestation_weeks BIGINT, lmp STRING, mother_married BOOLEAN,
mother_birth_state STRING, cigarette_use BOOLEAN, cigarettes_per_day BIGINT,
alcohol_use BOOLEAN, drinks_per_week BIGINT, weight_gain_pounds BIGINT,
born_alive_alive BIGINT, born_alive_dead BIGINT, born_dead BIGINT,
ever_born BIGINT, father_race BIGINT, father_age BIGINT,
record_weight BIGINT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 'gs://public-datasets/natality/csv'
诚然,根据对您问题的评论,我不确定我是否遗漏了您问题的另一部分。