用例是读取一个文件并在其上创建一个数据帧。之后,获取该文件的架构并存储到DB表中。
例如,我只是创建一个case类并获取printschema,但是我无法从中创建数据帧
下面是一个示例代码
case class Employee(Name:String, Age:Int, Designation:String, Salary:Int, ZipCode:Int)
val spark = SparkSession
.builder()
.appName("Spark SQL basic example")
.config("spark.master", "local")
.getOrCreate()
import spark.implicits._
val EmployeesData = Seq( Employee("Anto", 21, "Software Engineer", 2000, 56798))
val Employee_DataFrame = EmployeesData.toDF
val dfschema = Employee_DataFrame.schema
现在dfSchema是一个结构类型,并希望将其转换为两列的数据帧,如何实现
试试这个-
//-- For local file
val rdd = spark.read.option("wholeFile", true).option("delimiter",",").csv(s"file:///file/path/file.csv").rdd
val schema = StructType(Seq(StructField("Name", StringType, true),
StructField("Age", IntegerType, true),
StructField("Designation", StringType, true),
StructField("Salary", IntegerType, true),
StructField("ZipCode", IntegerType, true)))
val df = spark.createDataFrame(rdd,schema)
火花
为了将架构保存为字符串格式,可以使用StructType的toDDL方法。在您的情况下,DDL格式应为:
`Name` STRING, `Age` INT, `Designation` STRING, `Salary` INT, `ZipCode` INT
保存模式后,您可以从数据库中加载它并将其用作结构ype.fromDDL(my_schema)
,这将返回一个结构类型实例,您可以使用该实例使用spark.createDataFrame
创建新的数据框架,如@Ajay已经提到的。
同样有用的是要记住,您总是可以通过以下方式提取给定案例类的模式:
import org.apache.spark.sql.catalyst.ScalaReflection
val empSchema = ScalaReflection.schemaFor[Employee].dataType.asInstanceOf[StructType]
然后您可以使用empSchema.toDDL
获取DDL表示。
火花
对于火花
val empSchema = ScalaReflection.schemaFor[Employee].dataType
empSchema.simple字符串的示例输出:
struct<Name:string,Age:int,Designation:string,Salary:int,ZipCode:int>
当我说 table.drop() / metadata.drop_all() sqlacalchemy是否支持alter table、create view、create trigger、schema升级功能? 如何根据表对象的依赖关系对其排序? 如何以字符串形式获取创建表/删除表输出? 我如何子类表/列以提供某些行为/配置? 当我说 table.drop() / metadata.drop_al
问题内容: 我有一个719mb的CSV文件,看起来像: 我想加载到熊猫DataFrame中。现在我知道csv方法有负载: 但我特别想将其加载为“ MultiIndex” DataFrame,其中from和to是索引: 所以最后以: 等等。我不确定该怎么做? 问题答案: 您可以使用: 我曾经摆脱标题行中那些烦人的空格的地方。
我正在使用hazelcast IMap存储我的应用程序数据。 我面临着一个小问题。 问题说明:- 当我启动spring-boot应用程序时,我正在将数据库表数据加载到hazelcast中。 示例:- 但是当我获取相同的数据时,我得到的顺序不同。 那么有没有办法按照插入的顺序获取数据呢?
问题内容: 我正在尝试通过一种称为的方法设置项目,到目前为止还可以。但是后来我从中创建了一个arrayList,但我不知何故找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 这是我的代码: 上课开始联赛: 足球俱乐部课程: SportsClub课程(摘要): 最后是LeagueManager,它是一个接口: 有人能帮帮我吗?我已经尝试了好几天。谢谢。 问题答案: “问题
我试图从一个名为的方法中设置项目,到目前为止还不错。但后来我从它创建了一个arrayList,不知何故,我找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 下面是我的代码:
我无法将数据加载到表中。我有类,其名称为、等。我想将、插入到TextField上的表播放器中。 我正在执行与下面所示完全相同的操作:http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/table-view.htm#cjagaaee 但我不能让它起作用。有人能帮我吗?