我想通过Hive,Spark或SQL检索存储在Hadoop Cloudera集群上的数据。我写了应该从群集中获取数据的SQL查询。 但是在此之前,我想了解如何设置与群集的连接/游标,以便它知道在哪里读取或写入?
sc = spark.sparkContext
或类似的HIVECONTEXT或SPARKCONTEXT都不足够。
我们可能需要为节点和所有节点提供URL。那怎么办呢?
任何一个小例子就足够了。
答案 0 :(得分:1)
有两种方法可以在配置单元中创建表:
1-创建一个外部表模式:
CREATE EXTERNAL TABLE IF NOT EXISTS names_text(
student_ID INT, FirstName STRING, LastName STRING,
year STRING, Major STRING)
COMMENT 'Student Names'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/andrena';
2- a)为托管表创建架构:
CREATE TABLE IF NOT EXISTS Names(
student_ID INT, FirstName STRING, LastName STRING,
year STRING, Major STRING)
COMMENT 'Student Names'
STORED AS ORC;
b)将外部表数据移至托管表:
INSERT OVERWRITE TABLE Names SELECT * FROM names_text;
最后,验证Hive仓库分别将学生姓名存储在外部表和内部表中:
SELECT * FROM names_text;
SELECT * from Names;