spark写入hdfs 用csv格式并使用自定义分隔符
时间: 2023-04-21 20:06:29 浏览: 205
使用Spark将数据写入HDFS时,可以选择使用CSV格式,并且可以自定义分隔符。具体步骤如下:
1. 创建SparkSession对象
```scala
val spark = SparkSession.builder()
.appName("Write CSV to HDFS")
.master("local[*]")
.getOrCreate()
```
2. 读取数据并转换为DataFrame
```scala
val data = Seq(
("John", 25, "Male"),
("Lisa", 30, "Female"),
("Tom", 20, "Male")
)
val df = spark.createDataFrame(data).toDF("name", "age", "gender")
```
3. 将DataFrame写入HDFS
```scala
val outputPath = "hdfs://localhost:9000/user/hadoop/output.csv"
val delimiter = ","
df.write
.option("header", "true")
.option("delimiter", delimiter)
.csv(outputPath)
```
在上面的代码中,我们指定了输出路径和分隔符。此外,我们还设置了一个选项来指定是否包含标题行。
最后,我们可以在HDFS上检查输出文件:
```
hadoop fs -ls /user/hadoop/output.csv
```
输出:
```
-rw-r--r-- 1 hadoop supergroup 0 2021-08-02 16:45 /user/hadoop/output.csv/_SUCCESS
-rw-r--r-- 1 hadoop supergroup 33 2021-08-02 16:45 /user/hadoop/output.csv/part-00000-7b2d2b0f-7a9d-4d7c-8c1a-7f2b2d8c7f6e-c000.csv
```
阅读全文