Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何将spark dataframe的结果存储到scala val中_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark 如何将spark dataframe的结果存储到scala val中

Apache spark 如何将spark dataframe的结果存储到scala val中,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个数据帧。我的配置单元查询的结果总是只有一条记录,只有一列。有时生成null,有时生成0,有时生成数字(bigInt) 我的问题是,我想将这个值的结果存储到scala中的val中。我该怎么做 scala> val hc = new HiveContext(sc) hc: org.apache.spark.sql.hive.HiveContext = org.apache.spark.sql.hive.HiveContext@19e15d63 scala> val df = h

我有一个数据帧。我的配置单元查询的结果总是只有一条记录,只有一列。有时生成null,有时生成0,有时生成数字(bigInt)

我的问题是,我想将这个值的结果存储到scala中的val中。我该怎么做

scala> val hc = new HiveContext(sc)
hc: org.apache.spark.sql.hive.HiveContext = org.apache.spark.sql.hive.HiveContext@19e15d63

scala> val df = hc.sql("""select MAX(seq_num) as seq_num from omega.tx_records""")
df: org.apache.spark.sql.DataFrame = [seq_num: bigint]

scala> df.show
+-------+
|seq_num|
+-------+
|   null|
+-------+
我想将df的输出存储到字符串中。我该怎么做

我尝试了下面的方法。他们给出了一个数组

scala> df.collect
res2: Array[org.apache.spark.sql.Row] = Array([null])

scala> df.take(1)
res3: Array[org.apache.spark.sql.Row] = Array([null])

scala> df.head(1)
res4: Array[org.apache.spark.sql.Row] = Array([null])

您需要提取
数组元素
mkstring
以生成字符串数据

val df=spark.sql("select max(seq_num)seq_num from (select 1 seq_num union all select null seq_num)e")

df.collect().map(x => x(0)).mkString
String = 1

您需要提取
数组元素
mkstring
以生成字符串数据

val df=spark.sql("select max(seq_num)seq_num from (select 1 seq_num union all select null seq_num)e")

df.collect().map(x => x(0)).mkString
String = 1

如果你100%确定,那么你可以

df.collect.head.getAs[String]("seq_num")

得到你想要的。

如果你100%确定,那么你可以

df.collect.head.getAs[String]("seq_num")
得到你想要的