将嵌套json的spark列转换为字符串
我对spark/scala比较陌生,我有以下问题,希望你能帮我解决。为了使哈希算法能够工作,我需要将数组类型字段转换为字符串。下面的模式与我正在处理的类似:将嵌套json的spark列转换为字符串,json,scala,apache-spark,apache-spark-sql,Json,Scala,Apache Spark,Apache Spark Sql,我对spark/scala比较陌生,我有以下问题,希望你能帮我解决。为了使哈希算法能够工作,我需要将数组类型字段转换为字符串。下面的模式与我正在处理的类似: +-----------------+----------------+ | records | Partition | +-----------------+----------------+ | [{data:[{...}..]| 20200101 | +-----------------+----
+-----------------+----------------+
| records | Partition |
+-----------------+----------------+
| [{data:[{...}..]| 20200101 |
+-----------------+----------------+
| [{data:[{...}..]| 20200102 |
+-----------------+----------------+
The field types are: {records: array, partition: string}
我只想将记录字段转换为字符串,具体如下:
[{data:[{...}..] --> "[{data:[{...}..]"
在此方面的任何帮助都将不胜感激
谢谢。拥有数据架构(使用
df.printSchema
)会很有用。但通过一个简单的例子,我用一个简单的演员阵容做到了这一点:
import org.apache.spark.sql.types._
val castDf = df.withColumn("ArrrayToString", $"myColName".cast(StringType))
是否需要将ArrayType转换为具有该文本内容的StringType?。我认为最好是解析数组并创建不同的列,以便应用任何哈希算法。否则,您将需要解析“[{data:[{…}..]”字符串。恐怕在本例中,我需要文本内容。这是我最终使用的方法。谢谢!