您可以使用HiveQL的演員()的類型轉換函數將一個元素嵌套映射在Python中如下:
從pyspark。sql行df = sqlContext進口。createDataFrame([行(a = {b: 1}))) str = df。selectExpr(“鑄([b]作為字符串)”)
或在Scala中,如下所示:
val df = Seq ((Map (“a”- > 1))) .toDF df (“a”)。selectExpr(“鑄([a]作為字符串)”)
還可以使用withColumn()沒有Spark-SQL,雖然性能可能會不同。問題是,創建一個新的列會比使用Spark-SQL更多的時間。
喜歡的東西:
val dfNew = df。withColumn (“newColName df.originalColName.cast (IntegerType)) .drop (“originalColName”)。withColumnRenamed (“newColName”、“originalColName”)
創建新列,鑄件從原始列,最初的下降,然後重命名新列回到原來的名字。有點迂回,但看起來像。
它是將一個列包含空值安全嗎?