Получение типа данных всех столбцов в кадре данных с использованием scala - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть фрейм данных, в который загружаются следующие данные: введите описание изображения здесь

Я пытаюсь разработать код, который будет читать данные из любого источника, загружать данные в фрейм данных и верните следующее o / p: введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Это самое близкое, что я мог получить к выходу. Создайте схему из класса дел и затем создайте DF из списка столбцов схемы и отобразите их в Dataframe

import java.sql.Date

object GetColumnDf {

  def main(args: Array[String]): Unit = {
    val spark = Constant.getSparkSess

    val map = Map("Emp_ID" -> "Dimension","Cust_Name" -> "Dimension","Cust_Age" -> "Measure",
      "Salary" -> "Measure","DoJ" -> "Dimension")

    import spark.implicits._
    val lsit = Seq(Bean123("C-1001","Jack",25,3000,new Date(2000000))).toDF().schema.fields
      .map( col => (col.name,col.dataType.toString,map.get(col.name))).toList.toDF("Headers","Data_Type","Type")
    lsit.show()
  }

}

case class Bean123(Emp_ID: String,Cust_Name: String,Cust_Age: Int, Salary : Int,DoJ: Date)

0 голосов
/ 30 апреля 2020

Вы можете использовать свойство schema, а затем выполнять итерации по полям.

Пример:

Seq(("A", 1))
  .toDF("Field1", "Field2")
  .schema
  .fields
  .foreach(field => println(s"${field.name}, ${field.dataType}"))

Результаты:

enter image description here

Обязательно ознакомьтесь с Spark ScalaDo c.

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