Tôi muốn lưu dữ liệu trong khung dữ liệu Spark (v 1.3.0) vào bảng Hive bằng PySpark.lưu khung dữ liệu Spark vào Hive: bảng không thể đọc được vì "sàn gỗ không phải là SequenceFile"
Các documentation trạng thái:
"spark.sql.hive.convertMetastoreParquet: Khi đặt sai, Spark SQL sẽ sử dụng Hive SerDe cho các bảng gỗ thay vì xây dựng trong hỗ trợ."
Nhìn vào Spark tutorial, là dường như rằng thuộc tính này có thể được thiết lập:
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
sqlContext.sql("SET spark.sql.hive.convertMetastoreParquet=false")
# code to create dataframe
my_dataframe.saveAsTable("my_dataframe")
Tuy nhiên, khi tôi cố gắng để truy vấn bảng lưu trong Hive nó sẽ trả về:
hive> select * from my_dataframe;
OK
Failed with exception java.io.IOException:java.io.IOException:
hdfs://hadoop01.woolford.io:8020/user/hive/warehouse/my_dataframe/part-r-00001.parquet
not a SequenceFile
thế nào thế nào để tôi lưu bảng để nó ngay lập tức có thể đọc được trong Hive?
Bạn đã đăng chính xác câu trả lời tương tự [tại đây] (http://stackoverflow.com/questions/31341498/save-spark-dataframe-as-dynamic-partitioned-table-in-hive/37504196#37504196).nếu bạn nghĩ rằng câu hỏi là một bản sao, bạn nên đánh dấu nó như vậy và không đăng cùng một câu trả lời hai lần imo. – Jaap
Dường như mã cho TBL_HIVE_IS_NOT_HAPPY và TBL_HIVE_IS_HAPPY, giống hệt nhau. Tui bỏ lỡ điều gì vậy? –