Мы не можем записывать данные в фрейме spark напрямую .DAT-файлы, но мы можем записывать в нескольких других форматах.
Для понимания я создам фрейм данных и сохраню его в виде таблицы кустов.
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")
Вы можете следовать отсюда, теперь имя вашей таблицы улья - dbms, чтобы записать данные из таблицы улья, используя spark, выполните следующие шаги
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")