簡體   English   中英

如何在Spark Dataset中將字符串值替換為int?

[英]How to replace a string value to int in Spark Dataset?

例如,輸入數據:

1.0
\N

架構:

val schema = StructType(Seq(
  StructField("value", DoubleType, false)
))

讀入Spark數據集:

val df = spark.read.schema(schema)
    .csv("/path to csv file ")

當我使用此數據集時,我將得到一個異常,因為“ \\ N”對double無效。 如何在此數據集中將“ \\ N”完全替換為0.0? 謝謝。

如果數據格式錯誤,請不要使用類型不當的架構。 將輸入定義為StringType

val schema = StructType(Seq(
 StructField("value", StringType, false)
))

並稍后投射數據:

val df = spark.read.schema(schema).csv("/path/to/csv/file")
  .withColumn("value", $"value".cast("double"))
  .na.fill(0.0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM