[英]Convert spark dataframe with string column to StructType column
我有一個CSV
文件,標題為“消息”,行為
{"a":1,"b":"hello 1","c":"1234"}
{"a":2,"b":"hello 2","c":"2345"}
我想在不同的列a,b,c
轉換它們。 我嘗試了以下代碼:
df1 = spark.read.format("csv").option("header","true")
.option("delimiter","^")
.option("inferSchema","false")
.load("testing.csv")
但它把它當作一個string
列。
df1.printScema() --> String
您的文件為 json 格式,第一行為“消息”。
使用 Spark 的DataFrameReader
讀取時,可以使用選項"DROPMALFORMED"
忽略第一行
file : json-test.txt
message
{"a":1,"b":"hello 1","c":"1234"}
{"a":2,"b":"hello 2","c":"2345"}
通過忽略壞記錄 [初始記錄] 來讀取 json 文件:
val jsondf = spark.read
.option("multiLine", false)
.option("mode", "DROPMALFORMED")
.json("files/file-reader-test/json-test.txt")
jsondf.show()
輸出:
+---+-------+----+
| a| b| c|
+---+-------+----+
| 1|hello 1|1234|
| 2|hello 2|2345|
+---+-------+----+
架構:
jsondf.printSchema()
root
|-- a: long (nullable = true)
|-- b: string (nullable = true)
|-- c: string (nullable = true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.