我的数据框是通过读取RDBMS表创建的,它只有一列,其中只有一个值:
val sourceCols = spark.read.format("jdbc").option("url", hiveMetaConURL)
.option("dbtable", "(select source_columns from base.spe_tab where tablename='base.forecast') as sCols")
.option("user", metaUserName)
.option("password", metaPassword)
.load()
我尝试通过以下方式将其转换为字符串:
val sourceColDataTypes = sourceCols.rdd.map(_.mkString(",")).collect.foreach(println)
当我尝试将其打印为:
sourceColDataTypes.foreach(println)
我没有看到内容,而是看到了:
[Ljava.lang.String;@1e489957
有没有一种方法可以使用Scala的yield获得值。 谁能让我知道如何将DataFrame中的行转换为String?
答案 0 :(得分:1)
要获取该值,可以使用以下其中一项
sourceCols.map(_.getString(0)).collect.foreach(println)
sourceCols.map(_.toSeq.mkString(",")).collect.foreach(println)
如果您只想查看数据,可以使用
sourceCols.show(false)
如果您想要一个字符串,则可以作为
println(sourceCols.map(_.getString(0)).collect.mkString(","))
希望这会有所帮助!
答案 1 :(得分:0)
您可以直接在anon_send_exit(world_actor, exit_reason::user_shutdown)
上尝试此操作,完全不需要像这样{@ {1}}隐蔽
dataframe
或
rdd