0

我在云存储中有大约 30Gb 的数据,我想在使用 Dataproc 集群中的 Apache Hive 时进行查询。访问这些数据的最佳策略是什么。是通过gsutil将数据复制到我的主服务器并从那里访问它的最佳方法,还是我可以直接在云存储中访问它?如果是后者,如何在 Spark CLI 中指定其位置?我可以指定

location 'gs://<bucketname>' 

当我跑步时

CREATE EXTERNAL TABLE 

?

4

1 回答 1

2

您应该能够创建一个直接指向 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'

诚然,根据对您问题的评论,我不确定我是否遗漏了您问题的另一部分。

于 2016-01-27T15:25:08.587 回答