将读取文件的架构存储到Spark Scala中的csv文件中

马希

我正在使用以下命令在数据框中启用的inferschema选项读取csv文件。

df2 = spark.read.options(Map("inferSchema"->"true","header"->"true")).csv("s3://Bucket-Name/Fun/Map/file.csv")
df2.printSchema()

Output:

root
 |-- CC|Fun|Head|Country|SendType: string (nullable = true)

现在,我只想将上述输出存储到仅包含这些列名和这些列的数据类型的csv文件中,如下所示。

column_name,datatype
CC,string
Fun,string
Head,string
Country,string
SendType,string

我尝试使用下面的选项将其写入csv,但这是将整个数据写入文件。

df2.coalesce(1).write.format("csv").mode("append").save("schema.csv")

问候mahi

水银

尝试类似下面的用法,coalesce(1).option("header","true")与标题一起输出

import java.io.FileWriter

object SparkSchema {

  def main(args: Array[String]): Unit = {

    val fw = new FileWriter("src/main/resources/csv.schema", true)
    fw.write("column_name,datatype\n")

    val spark = Constant.getSparkSess

    import spark.implicits._

    val df = List(("", "", "", 1l)).toDF("applicationName", "id", "requestId", "version")
    val columnList : List[(String, String)] = df.schema.fields.map(field => (field.name, field.dataType.typeName))
      .toList
    try {
      val outString = columnList.map(col => {
        col._1 + "," + col._2
      }).mkString("\n")
      fw.write(outString)
    }
    finally fw.close()

    val newColumnList : List[(String, String)] = List(("newColumn","integer"))

    val finalColList = columnList ++ newColumnList
    writeToS3("s3://bucket/newFileName.csv",finalColList)

  }

  def writeToS3(s3FileNameWithpath : String,finalColList : List[(String,String)]) {

    val outString =  finalColList.map(col => {
      col._1 + "," + col._2
    }).mkString("\\n")

    import org.apache.hadoop.fs._
    import org.apache.hadoop.conf.Configuration
    val conf = new Configuration()
    conf.set("fs.s3a.access.key", "YOUR ACCESS KEY")
    conf.set("fs.s3a.secret.key", "YOUR SECRET KEY")

    val dest = new Path(s3FileNameWithpath)
    val fs = dest.getFileSystem(conf)
    val out = fs.create(dest, true)
    out.write( outString.getBytes )
    out.close()
  }

}


本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spark/Scala:将临时数据存储到 csv 文件中

来自分类Dev

在Scala中编辑CSV文件

来自分类Dev

在Scala中编辑CSV文件

来自分类Dev

在scala中读取csv文件(数字类型)

来自分类Dev

在Spark中读取CSV文件时出错-Scala

来自分类Dev

在spark中读取文件时存储文件

来自分类Dev

从Scala中的数组制作.csv文件

来自分类Dev

如何在scala中写入csv文件?

来自分类Dev

将数组的对象存储到CSV文件中,并使用GUI的特定参数读取它们

来自分类Dev

在Scala中读取大型csv文件的功能样式

来自分类Dev

无法在 spark scala 中读取 conf 文件

来自分类Dev

如何每次逐行读取CSV文件并将其存储到新行的新CSV文件中?

来自分类Dev

使用python将列表存储到csv文件中

来自分类Dev

将csv文件内容存储到多个数组中

来自分类Dev

将Pig输出存储到CSV文件中

来自分类Dev

将CSV文件存储到C中的Float Matrix

来自分类Dev

使用JavaScript将CSV文件存储到数组中

来自分类Dev

spark读取csv中的Windows文件

来自分类Dev

如何在scala中读取文件并将单词存储到列表中?

来自分类Dev

将 CSV 文件上传到 MongoDB | 从 CSV 文件中读取

来自分类Dev

从 csv 文件读取数据并存储到数组中,我的文件正确打开但文件读取不正确

来自分类Dev

将文件读取到Array,然后将Array存储到ArrayList Java中

来自分类Dev

Scala:如何合并数据框中的多个 CSV 文件

来自分类Dev

spark-scala:如何从 .dat 文件读取数据转换它并最终存储在 HDFS 中

来自分类Dev

读取多个csv文件,将文件列表串联到一个单一的DataFrame中

来自分类Dev

将文件行存储到数组中

来自分类Dev

将文件行存储到数组中

来自分类Dev

将.txt文件存储到结构中

来自分类Dev

将文件内容存储到数组中

Related 相关文章

  1. 1

    Spark/Scala:将临时数据存储到 csv 文件中

  2. 2

    在Scala中编辑CSV文件

  3. 3

    在Scala中编辑CSV文件

  4. 4

    在scala中读取csv文件(数字类型)

  5. 5

    在Spark中读取CSV文件时出错-Scala

  6. 6

    在spark中读取文件时存储文件

  7. 7

    从Scala中的数组制作.csv文件

  8. 8

    如何在scala中写入csv文件?

  9. 9

    将数组的对象存储到CSV文件中,并使用GUI的特定参数读取它们

  10. 10

    在Scala中读取大型csv文件的功能样式

  11. 11

    无法在 spark scala 中读取 conf 文件

  12. 12

    如何每次逐行读取CSV文件并将其存储到新行的新CSV文件中?

  13. 13

    使用python将列表存储到csv文件中

  14. 14

    将csv文件内容存储到多个数组中

  15. 15

    将Pig输出存储到CSV文件中

  16. 16

    将CSV文件存储到C中的Float Matrix

  17. 17

    使用JavaScript将CSV文件存储到数组中

  18. 18

    spark读取csv中的Windows文件

  19. 19

    如何在scala中读取文件并将单词存储到列表中?

  20. 20

    将 CSV 文件上传到 MongoDB | 从 CSV 文件中读取

  21. 21

    从 csv 文件读取数据并存储到数组中,我的文件正确打开但文件读取不正确

  22. 22

    将文件读取到Array,然后将Array存储到ArrayList Java中

  23. 23

    Scala:如何合并数据框中的多个 CSV 文件

  24. 24

    spark-scala:如何从 .dat 文件读取数据转换它并最终存储在 HDFS 中

  25. 25

    读取多个csv文件,将文件列表串联到一个单一的DataFrame中

  26. 26

    将文件行存储到数组中

  27. 27

    将文件行存储到数组中

  28. 28

    将.txt文件存储到结构中

  29. 29

    将文件内容存储到数组中

热门标签

归档