相关疑难解决方法(0)

PySpark,通过JSON文件导入模式

tbschema.json 看起来像这样:

[{"TICKET":"integer","TRANFERRED":"string","ACCOUNT":"STRING"}]
Run Code Online (Sandbox Code Playgroud)

我使用以下代码加载它

>>> df2 = sqlContext.jsonFile("tbschema.json")
>>> f2.schema
StructType(List(StructField(ACCOUNT,StringType,true),
    StructField(TICKET,StringType,true),StructField(TRANFERRED,StringType,true)))
>>> df2.printSchema()
root
 |-- ACCOUNT: string (nullable = true)
 |-- TICKET: string (nullable = true)
 |-- TRANFERRED: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
  1. 当我希望元素的顺序与它们在JSON中出现的顺序相同时,为什么模式元素会被排序.

  2. 在派生JSON之后,数据类型整数已转换为StringType,如何保留数据类型.

python json apache-spark apache-spark-sql pyspark

6
推荐指数
1
解决办法
1万
查看次数

如何从CSV文件创建模式并将该模式​​持久/保存到文件?

我有10列的CSV文件。Half String和Half是Integers。

什么是Scala代码以:

  • 创建(推断)架构
  • 将该架构保存到文件

到目前为止,我有:

import org.apache.spark.sql.SQLContext

val sqlContext = new SQLContext(sc)
val df = sqlContext.read
    .format("com.databricks.spark.csv")
    .option("header", "true") // Use first line of all files as header
    .option("inferSchema", "true") // Automatically infer data types
    .load("cars.csv")
Run Code Online (Sandbox Code Playgroud)

保存该模式的最佳文件格式是什么?是JSON吗?

目标是-我只想创建一次架构,下一次从文件中加载,而不是即时重新创建。

谢谢。

schema scala apache-spark

2
推荐指数
1
解决办法
2398
查看次数

标签 统计

apache-spark ×2

apache-spark-sql ×1

json ×1

pyspark ×1

python ×1

scala ×1

schema ×1