Как сохранить схему вложенного JSON в переменной в Spark Scala - PullRequest
0 голосов
/ 11 марта 2019

Я могу получить структуру моего вложенного JSON, используя: df.schema

Я получаю это:

StructType(StructField(CreatedBy,StringType,true), StructField(Description,StringType,true), StructField(ExpirationDate,LongType,true), StructField(ID,StringType,true), StructField(Name,StringType,true), StructField(Package,StringType,true), StructField(PackageDependencies,StructType(StructField(dataShape,StructType(StructField(fieldDefinitions,StructType(StructField(Name................

Я хочу получить только столбцыс типами данных.Было бы здорово, если бы кто-то, работающий над Spark Scala, мог предложить мне это.

Спасибо

1 Ответ

0 голосов
/ 11 марта 2019

Я думаю, что вы ищете df.dtypes с помощью схемы в качестве входных данных. Вы можете получить это, используя пустой фрейм данных. Проверьте это

scala> import org.apache.spark.sql.types._
import org.apache.spark.sql.types._

scala> val typ = StructType(Seq(
     | StructField("CreatedBy",StringType,true),
     | StructField("Description",StringType,true),
     | StructField("ExpirationDate",LongType,true),
     | StructField("ID",StringType,true),
     | StructField("Name",StringType,true),
     | StructField("Package",StringType,true)));
typ: org.apache.spark.sql.types.StructType = StructType(StructField(CreatedBy,StringType,true), StructField(Description,StringType,true), StructField(ExpirationDate,LongType,true), StructField(ID,StringType,true), StructField(Name,StringType,true), StructField(Package,StringType,true))

scala> import org.apache.spark.sql.Row
import org.apache.spark.sql.Row

scala> val df = spark.createDataFrame(spark.sparkContext.emptyRDD[Row],typ)
df: org.apache.spark.sql.DataFrame = [CreatedBy: string, Description: string ... 4 more fields]

scala> df.dtypes
res8: Array[(String, String)] = Array((CreatedBy,StringType), (Description,StringType), (ExpirationDate,LongType), (ID,StringType), (Name,StringType), (Package,StringType))

scala> df.dtypes.foreach(println)
(CreatedBy,StringType)
(Description,StringType)
(ExpirationDate,LongType)
(ID,StringType)
(Name,StringType)
(Package,StringType)

scala>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...