我有一个示例应用程序可以将csv文件读取到数据框中。数据帧可以使用方法 df.saveAsTable(tablename,mode)
以镶木地板格式存储到Hive表格中。将Spark数据框保存为Hive中的动态分区表
上面的代码工作正常,但我每天都有这么多数据,我想基于creationdate(表中的列)动态分区配置单元表。
有没有办法动态分区数据框并将其存储到配置单元仓库。希望避免使用hivesqlcontext.sql(insert into table partittioin by(date)....)
对插入语句进行硬编码。
问题可以被视为一个扩展:How to save DataFrame directly to Hive?
任何的帮助深表感谢。
尝试过这种方法Partitionby。它只能在RDD级别上工作,一旦创建了数据框,大多数方法都是DBMS样式的,例如, groupby,orderby但他们不提供写入Hive上不同分区文件夹的目的。 – Chetandalal
好吧,所以能够用1.4版本解决它。 。df.write()模式(SaveMode.Append).partitionBy( “日期”)saveAsTable( “表名”); 。但是,这会将我的日期字段更改为整数值并删除实际日期。例如列中有9个唯一日期,但现在它们存储为1,2,3 ....并且文件夹名称为date = 1,2,3,...而不是date = 20141121。让我知道是否有办法做到这一点。 – Chetandalal
@ subramaniam-ramasubramanian:请回答OP的问题作为答案,而不是编辑现有的答案 –