我在蜂巢中有一个表,其DDL如下所示。
创建表ABC(
def foo()
puts "First_name: "
first_name = gets.chomp
puts
puts "You are #{first_name}. Is info correct? [y/n]"
true_false = gets.chomp
if true_false == "y"
puts
puts "Good!"
puts
puts "ENTERING STAGE~2"
first_name
else true_false == "n"
puts "Please correct the information." #jump: puts "First name: "
foo()
end
end
puts "ENTERING STAGE~1"
puts
first_name = foo()
puts
puts "Last name: "
last_name = gets.chomp
puts
puts "You are #{first_name} #{last_name}."
字符串)
被(
foo()
字符串,
String.format
bigint,
name
字符串,
col1
字符串)
我有一个要求,我必须使用Spark Scala将Hive表的非分区列名称存储到变量1中,并将分区列名称存储到变量2中。
所需的输出为:
col2
我正在遵循以下方法,但无法获得相同的结果。
col3
您能帮我解决吗?
答案 0 :(得分:0)
尝试一下:
val df=sql("show partitions default.ABC")
您可以获得“分区”列。然后收集想要的东西。
如果要创建表分区,可以使用spark-sql execute
show create table tableName
您可以获得数据集的'createtab_stmt'列。
答案 1 :(得分:0)
尝试:
import org.apache.spark.sql.functions._
val partitionsColumns = spark.catalog.listColumns("wikicc").where(col("ispartition") === true).select("name").collect().map(_.getAs[String]("name"))
val noParitionsColumns = spark.catalog.listColumns("wikicc").where(col("ispartition") === false).select("name").collect().map(_.getAs[String]("name"))
println(partitionsColumns.mkString(","))
println(noParitionsColumns.mkString(","))