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を使用して読み取る
ときにオプション"DROPMALFORMED"
を使用すると、最初の行を無視できます。DataFrameReader
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)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加