2016-08-03 14 views
6

Bối cảnh: -Không thể lấy kết quả từ tổ ong giao dịch kích hoạt bảng thông qua tia lửa-sql

  • Tôi đang sử dụng HDP với spark1.6.0 và hive 1.2.1

bước Tiếp theo : -

Tạo một bảng tổ ong: -

hive> 
CREATE TABLE orctest(PROD_ID bigint, CUST_ID bigint, TIME_ID timestamp, CHANNEL_ID bigint, PROMO_ID bigint, QUANTITY_SOLD decimal(10,0), AMOUNT_SOLD decimal(10,0)) CLUSTERED BY (PROD_ID) INTO 32 BUCKETS STORED AS ORC TBLPROPERTIES ("orc.compress"="SNAPPY", "transactional"="true"); 

Chèn hồ sơ vào orctest

hive> 
insert into orctest values(1, 1, '2016-08-02 21:36:54.000000000', 1, 1, 10, 10000); 

Cố gắng truy cập vào bảng orctest từ tia lửa vỏ

scala> 
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) 

val s = hiveContext.table("orctest")* 

ném ngoại lệ: -

16/08/02 22:06:54 INFO OrcRelation: Listing hdfs://hadoop03:8020/apps/hive/warehouse/orctest on driver 
16/08/02 22:06:54 
INFO OrcRelation: Listing hdfs://hadoop03:8020/apps/hive/warehouse/orctest/delta_0000005_0000005 on driver 
**java.lang.AssertionError: assertion failed** 
at scala.Predef$.assert(Predef.scala:165) 
at org.apache.spark.sql.execution.datasources.LogicalRelation$$anonfun$1.apply(LogicalRelation.scala:39) 
at org.apache.spark.sql.execution.datasources.LogicalRelation$$anonfun$1.apply(LogicalRelation.scala:38) 
at scala.Option.map(Option.scala:145) 
at org.apache.spark.sql.execution.datasources.LogicalRelation.<init>(LogicalRelation.scala:38) 
at org.apache.spark.sql.execution.datasources.LogicalRelation.copy(LogicalRelation.scala:31) 
at org.apache.spark.sql.hive.HiveMetastoreCatalog.org$apache$spark$sql$hive$HiveMetastoreCatalog$$convertToOrcRelation(HiveMetastoreCatalog.scala:588) 

Mọi trợ giúp sẽ thực sự được đánh giá cao.

+0

Có một cái nhìn http://stackoverflow.com/questions/27171702/error-in-scala-compiler-java-lang-assertionerror-assertion-failed-even-when-p – BruceWayne

+0

Cảm ơn krishna cho bình luận của bạn. Nhưng tôi đã không thử điều này với một dự án scala, tôi trực tiếp thử điều này trong spark-shell. Suy nghĩ của tôi: - Nếu bạn tạo bảng hive với thuộc tính xuyên quốc gia là đúng thì bạn không thể truy cập nội dung của bảng mặc dù tia lửa (Vui lòng sửa tôi nếu tôi sai) PS: Tôi đang sử dụng HDP (Spark 1.6.0 và hive 1.2.1) –

+0

Tôi cũng đang đối mặt với một vấn đề tương tự. Tôi không thể tải một bảng giao dịch được kích hoạt vào một khung dữ liệu tia lửa. Bạn đã tìm thấy giải pháp cho vấn đề này chưa? Tôi đã thử thiết lập các thuộc tính giao dịch hive bằng cách sử dụng sqlContext.setConf() trước khi thử tải. Tôi cũng đã thử tạo chế độ xem trên bảng giao dịch nguồn và nhấn chế độ xem từ tia lửa nhưng không có lịch phát sóng –

Trả lời

2
thiết lập

Hãy thử: hiveContext.setConf("spark.sql.hive.convertMetastoreOrc", "false")

Các vấn đề liên quan