[英]removing spaces in DataFrame using SCALA. (I have loaded CSV file into RDD then trying to remove spaces from it
我的CSV文件中包含不需要的空格和Null值的數據。 我把這個文件加載到spark RDD中,直到這里沒問題。 現在我必須從此RDD中刪除空格和空值。 如何做到這一點任何人都可以幫助我嗎?
object Oracle {def main(args: Array[String]): Unit = {
import org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession
System.setProperty("hadoop.home.dir","D:\\hadoop\\");
val spark = SparkSession.builder().appName("Schema").master("local[*]").getOrCreate()
import spark.implicits._
import org.apache.spark.sql.functions._
val inpp = spark.read.csv("file:///C:/Users/user/Desktop/xyz.csv")
inpp.show()
val df = inpp.toDF("name")
inpp.select(
col("name"),
regexp_replace(col("name"), "\\s+$", ""),
rtrim(col("name")),
length(col("name"))
).show() }}
你可以這樣做:
scala> val someDFWithName = Seq((1, "anu rag"), (2,"raj u"),(3, " ram "), (4, null), (5, "")).toDF("id", "name")
現在篩選空值或空值並應用正則表達式以刪除額外空格:
scala> someDFWithName.filter(col("name") !== "").select(
| col("name"),
| regexp_replace(col("name"), " ", ""),
| length(col("name"))
| ).show()
輸出將是:
+--------+-------------------------+------------+
| name|regexp_replace(name, , )|length(name)|
+--------+-------------------------+------------+
| anu rag| anurag| 7|
| raj u| raju| 5|
| ram | ram| 8|
+--------+-------------------------+------------+
謝謝。
您可以在csv閱讀器中提供這些選項以修剪數據,然后過濾不相關的數據:
val df = spark.read
.format("csv")
.option("ignoreLeadingWhiteSpace", "true")
.option("ignoreTrailingWhiteSpace", "true")
.option("inferSchema", "true")
.option("header", "true")
.load("file:///C:/Users/user/Desktop/xyz.csv")
.filter(col("name").isNotNull)
.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.