簡體   English   中英

將 hive 表卸載到。 使用 Spark 或 pyspark 或 python 的 dat 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM