如何在配置单元中以未压缩的文本格式存储sparkDataframe

oknrviil  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(306)

我正在尝试将Dataframe存储到外部配置单元表中。当我执行以下操作时:

recordDF.write.option("path", "hdfs://quickstart.cloudera:8020/user/cloudera/hadoop/hive/warehouse/VerizonProduct").saveAsTable("productstoreHTable")

在hdfs位置,表应该出现在那里,我得到了以下结果:
-rw-r--r--3 cloudera cloudera 0 2016-12-25 18:58 hadoop/hive/warehouse/Verizon产品/\u成功
-rw-r--r--3 cloudera cloudera 482 2016-12-25 18:58 hadoop/hive/warehouse/verizonproduct/part-r-00000-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet
-rw-r--r--3 cloudera cloudera 482 2016-12-25 18:58 hadoop/hive/warehouse/verizonproduct/part-r-00001-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet
-rw-r--r--3 cloudera cloudera 482 2016-12-25 18:58 hadoop/hive/warehouse/verizonproduct/part-r-00002-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet
-rw-r--r--3 cloudera cloudera 482 2016-12-25 18:58 hadoop/hive/warehouse/verizonproduct/part-r-00003-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet
如何将其存储为未压缩文本格式?
谢谢

enyaitl3

enyaitl31#

您可以添加 format 选项:

recordDF.write.option("path", "...").format("text").saveAsTable("...")

recordDF.write.option("path", "...").format("csv").saveAsTable("...")
ie3xauqp

ie3xauqp2#

上述csv格式的解决方案抛出了一个警告“找不到数据源提供程序csv对应的配置单元序列”。未按所需方式创建表。一种解决方案是创建一个外部表,如下所示 sqlContext.sql("CREATE EXTERNAL TABLE test(col1 int,col2 string) STORED AS TEXTFILE LOCATION '/path/in/hdfs'") .
那么 dataFrame.write.format("com.databricks.spark.csv").option("header", "true").save("/path/in/hdfs")

相关问题