在spark scala中将(a1 | a2 | a3 b1 | b2 | b3)转换为((a1,a2,a3),(b1,b2,b3))。
kyxcudwk1#
把你的线分开形成一个序列将序列转换为Dataframe用适当的前缀追加字符串 ( 和后缀 ) Map行=>字符串将Dataframe收集为列表将列表与 , 和前缀 ( 和后缀 ) ```import org.apache.spark.sql.functions._
(
)
,
object ParseAString {
def main(args: Array[String]): Unit = {val spark = Constant.getSparkSessimport spark.implicits._val inputStr = "a1|a2|a3 b1|b2|b3".split(" ").toSeq.toDF
val result = inputStr .select( concat(lit("("),regexp_replace($"value","\\|",","),lit(")") ) ) .map(row => { row.getString(0) }) .collect().mkString(",") println(s"(${result})")
}
1条答案
按热度按时间kyxcudwk1#
把你的线分开形成一个序列
将序列转换为Dataframe
用适当的前缀追加字符串
(
和后缀)
Map行=>字符串将Dataframe收集为列表
将列表与
,
和前缀(
和后缀)
```import org.apache.spark.sql.functions._
object ParseAString {
def main(args: Array[String]): Unit = {
val spark = Constant.getSparkSess
import spark.implicits._
val inputStr = "a1|a2|a3 b1|b2|b3".split(" ").toSeq.toDF
}
}