[英]Unload hive table into. dat file using Spark or pyspark or python
我目前正在使用 hql 將 hive 表中的數據卸載到文本文件中。 因為它花費了太多時間。 我想 go 用於 spark 或 pyspark。我是 spark/python 的新手。請你幫忙解決這個問題,目前我正在使用下面的查詢來卸載
beeline --outputformat=dsv --silent=true - e 'select * from <tablename>' > /dir/samplefile.txt
讓我知道任何其他性能調整。
我們不能直接寫spark dataframe.DAT文件,但是我們可以寫成多種其他格式。
為了便於理解,我將創建一個 dataframe 並將其保存為 hive 表。
scala> val dbms = Seq((1,2,3, "asd"), (2,3,4,"wee"), (3,4,5, "wer")).toDF("a", "b", "c", "d")
dbms: org.apache.spark.sql.DataFrame = [a: int, b: int ... 2 more fields]
scala> dbms.show()
+---+---+---+---+
| a| b| c| d|
+---+---+---+---+
| 1| 2| 3|asd|
| 2| 3| 4|wee|
| 3| 4| 5|wer|
+---+---+---+---+
scala> dbms.createOrReplaceTempView("dbms")
您可以從這里開始,現在您的 hive 表名為 dbms,要使用 spark 從 hive 表中寫入數據,請按照以下步驟操作
scala> val data = spark.sql("select * from dbms")
data: org.apache.spark.sql.DataFrame = [a: int, b: int ... 2 more fields]
以 text/csv 格式編寫
scala> data.write.format("com.databricks.spark.csv").option("header", "true").save("output.csv")
以廣泛使用的拼花格式編寫
scala> data.write.mode("overwrite").parquet("/path/to/hdfs/" + "data.parquet")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.