Sum*_*t D 4 apache-spark apache-spark-sql hive-metastore
我是 Spark 的新手。我想将数据帧数据写入配置单元表。Hive 表在多个列上进行分区。通过 Hivemetastore 客户端,我正在获取分区列,并将其作为数据帧 write 方法中 partitionby 子句中的变量传递。
var1="country","state" (Getting the partiton column names of hive table)
dataframe1.write.partitionBy(s"$var1").mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,它给了我错误分区“国家”,“国家”不存在。我认为它将“国家”,“国家”作为一个字符串。
你能帮我一下吗。
partitionBy 函数接受一个varargs非列表。您可以将其用作
dataframe1.write.partitionBy("country","state").mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")
Run Code Online (Sandbox Code Playgroud)
或者在 Scala 中,您可以将列表转换为可变参数,例如
val columns = Seq("country","state")
dataframe1.write.partitionBy(columns:_*).mode("overwrite").save(s"$hive_warehouse/$dbname.db/$temp_table/")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12999 次 |
| 最近记录: |