我正在使用 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/