java - 如何将 Spark 数据帧输出转换为 json?

标签 java json scala apache-spark apache-spark-sql

我正在使用 Spark SQL 上下文读取包含 CSV 文件的文件。

代码:

m.put("path", CSV_DIRECTORY+file.getOriginalFilename());
m.put("inferSchema", "true"); // Automatically infer data types else string by default
m.put("header", "true");      // Use first line of all files as header         
m.put("delimiter", ";");

DataFrame df = sqlContext.load("com.databricks.spark.csv",m);              
df.printSchema();

使用 df.printSchema() 获取列名称和数据类型

O/P:

|--id : integer (nullable = true)
|-- ApplicationNo: string (nullable = true)
|-- Applidate: timestamp(nullable = true)

语句 printSchema 的返回类型是什么。如何将输出转换为JSON格式,如何将数据帧转换为JSON?

所需的 O/P:

{"column":"id","datatype":"integer"}

最佳答案

DataType 有一个 json() 方法和一个 fromJson() 方法,可用于序列化/反序列化架构。

val df = sqlContext.read().....load()
val jsonString:String = df.schema.json()
val schema:StructType = DataType.fromJson(jsonString).asInstanceOf[StructType]

关于java - 如何将 Spark 数据帧输出转换为 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227796/

相关文章:

java - 奇怪的Java代码

java - Kafka Consumer仅在两条消息堆叠时才读取消息

c# - 为什么我不能序列化具有私有(private) setter 的属性(C#、json)

javascript - 使用 Javascript AJAX 发布请求调用任何 PHP 函数

arrays - 为什么大型数组构造函数调用会破坏 Scala 编译器?

api - 是否可以在 Haskell 中创建像 Scala 2.8 这样的集合 api?

java - 无法通过相对路径检索图像

java - 从 JAVA 7 迁移到 8 时,JAX WS 的 DII(例如 Dispatch)是否会受到影响

ios - 添加/编辑JSON数据iOS?

web-services - 响应式发送文件到 Play!2 Scala 中的 Web 服务