访问 Hive 中已经存在的 table
Accessing already present table in Hive
我在 hive 中创建了一个 book_crossing_dataset 数据库,并在其中创建了 3 个 table。
1) bx_books
2) bx_books_ratings
3) bx_user
喜欢下面
create database book_crossing_dataset;
use book_crossing_dataset;
add jar /home/cloudera/Downloads/ccsv-serde-0.9.1.jar;
create external table stage_bx_user(
User_ID int,
Location string,
Age int
)
row format serde 'com.bizo.hive.serde.csv.CSVSerde'
with serdeproperties(
"separatorChar" = "\;",
"quoteChar" = "\"")
stored as textfile
tblproperties ("skip.header.line.count"="1");
load data local inpath "/home/cloudera/workspace/BX-CSV-Dump/BX-Users.csv" into table stage_bx_user;
create external table bx_user(
User_ID int,
Location string,
Age int
)
stored as parquet;
insert into table bx_user select * from stage_bx_user;
现在我想从 spark 查询这个 table 但是当我使用下面的代码时
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import HiveContext
conf = SparkConf().setAppName("Book Crossing")
sc = SparkContext(conf=conf)
hc = HiveContext(sc)
books = hc.sql("show databases")
print(books.show())
那里只显示默认数据库。
我使用以下 link 作为参考
Query HIVE table in pyspark
您有创建数据库的调用,但您从未在创建 table 调用中使用它。我建议您将脚本的前 3 行更改为
create database if not exists book_crossing_dataset;
use book_crossing_dataset;
add jar /home/cloudera/Downloads/ccsv-serde-0.9.1.jar;
如果这没有帮助,则问题出在 Spark 配置上。我建议尝试通过 SparkSession
启用 Hive 支持:
import pyspark
spark = pyspark.sql.SparkSession.builder. \
appName("Book Crossing").enableHiveSupport().getOrCreate()
spark.sql("show databases").show()
我在 hive 中创建了一个 book_crossing_dataset 数据库,并在其中创建了 3 个 table。
1) bx_books 2) bx_books_ratings 3) bx_user
喜欢下面
create database book_crossing_dataset;
use book_crossing_dataset;
add jar /home/cloudera/Downloads/ccsv-serde-0.9.1.jar;
create external table stage_bx_user(
User_ID int,
Location string,
Age int
)
row format serde 'com.bizo.hive.serde.csv.CSVSerde'
with serdeproperties(
"separatorChar" = "\;",
"quoteChar" = "\"")
stored as textfile
tblproperties ("skip.header.line.count"="1");
load data local inpath "/home/cloudera/workspace/BX-CSV-Dump/BX-Users.csv" into table stage_bx_user;
create external table bx_user(
User_ID int,
Location string,
Age int
)
stored as parquet;
insert into table bx_user select * from stage_bx_user;
现在我想从 spark 查询这个 table 但是当我使用下面的代码时
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import HiveContext
conf = SparkConf().setAppName("Book Crossing")
sc = SparkContext(conf=conf)
hc = HiveContext(sc)
books = hc.sql("show databases")
print(books.show())
那里只显示默认数据库。
我使用以下 link 作为参考 Query HIVE table in pyspark
您有创建数据库的调用,但您从未在创建 table 调用中使用它。我建议您将脚本的前 3 行更改为
create database if not exists book_crossing_dataset;
use book_crossing_dataset;
add jar /home/cloudera/Downloads/ccsv-serde-0.9.1.jar;
如果这没有帮助,则问题出在 Spark 配置上。我建议尝试通过 SparkSession
启用 Hive 支持:
import pyspark
spark = pyspark.sql.SparkSession.builder. \
appName("Book Crossing").enableHiveSupport().getOrCreate()
spark.sql("show databases").show()