Scala csv文件读取并显示新列中的数据

时间:2017-11-07 17:11:55

标签: scala csv apache-spark dataframe

我是Scala的新手。我需要从csv文件中读取数据,该文件有两个名为Name和Marks的标题列,基于Marks列我想在第3列显示结果;通过或失败(< 35 fail,> 35pass)。

数据如下所示:

Name,Marks 
x,10
y,50
z,80

结果应该是:

Name Marks Result
x    10     Fail
Y    50     Pass
z    80     Pass

2 个答案:

答案 0 :(得分:0)

您可以使用标题阅读csv文件,然后使用whenotherwise添加一列,根据标记提供不同的值。

import spark.implicits._

val df = spark.read.option("header", true).csv("/path/to/csv") // read csv
val df2 = df.withColumn("Result", when($"Marks" < 35, "Fail").otherwise("Pass"))

答案 1 :(得分:-1)

import org.apache.spark.sql.functions._
import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder.master("local")
           .appName("").config("spark.sql.warehouse.dir", "C:/temp").getOrCreate()

val df = spark.read.option("header",true).csv("file path")
val resul = df.withColumn("Result", when(col("Marks").cast("Int")>=35, "PASS").otherwise("FAIL"))