我有一个RDD[HbaseRecord]
,它包含一个自定义复杂类型Name
。这两个类定义如下:
class HbaseRecord(
val uuid: String,
val timestamp: String,
val name: Name
)
class Name(
val firstName: String,
val middleName: String,
val lastName: String
)
在我代码中的某个点,我想从RDD生成一个DataFrame,这样我就可以将它保存为一个avro文件。我尝试了以下操作:
//I get an Object from Hbase here
val objectRDD : RDD[HbaseRecord] = ...
//I convert the RDD[HbaseRecord] into RDD[Row]
val rowRDD : RDD[Row] = objectRDD .map(
hbaseRecord => {
val uuid : String = hbaseRecord.uuid
val timestamp : String = hbaseRecord.timestamp
val name : Name = hbaseRecord.name
Row(uuid, timestamp, name)
})
//Here I define the schema
val schema = new StructType()
.add("uuid",StringType)
.add("timestamp", StringType)
.add("name", new StructType()
.add("firstName",StringType)
.add("middleName",StringType)
.add("lastName",StringType)
//Now I try to create a Dataframe using the RDD[Row] and the schema
val dataFrame = sqlContext.createDataFrame(rowRDD , schema)
我尝试从行中删除复杂类型,因此它将是Row[String,String]
,然后就没有错误了。所以我假设问题出在复杂类型上。
我做错了什么?或者我可以遵循什么其他方法来生成具有复杂类型的DataFrame?
我只是使用了简单的case class
来代替class。name
列不符合定义的架构。将name
列转换为行类型,它应该可以工作。
val rowRDD : RDD[Row] = objectRDD .map(
hbaseRecord => {
val uuid : String = hbaseRecord.uuid
val timestamp : String = hbaseRecord.timestamp
val name = Row(hbaseRecord.name.firstName,
hbaseRecord.name.middleName,hbaseRecord.name.lastName)
Row(uuid, timestamp, name)
})
我在网上看到了Dataframes教程https://databricks.com/blog/2015/02/17/introducing-dataframes-in-spark-for-large-scale-data-science.html这是用Python编写的。我正试图把它翻译成Scala。 它们有以下代码: 因此,我首先将数据从一个读入一个数据帧,然后我得到: 但我不知道: > 如何将
Serenity 实体系统是一个微 ORM,它像 Dapper 那样对 SQL 情有独钟。 不同于完全成熟的ORM,如 NHibernate/Entity Framework,Serenity 提供智能感知地映射和查询数据库所需的最小功能、编译时检查和容易的重构。 Serenity 的实体通常像 XYZRow 这样命名。它们是 Serenity.Data.Row 子类。 让我们来定义一个简单的行类
描述 (Description) column和row类用于同一元素以获取用作容器的全宽列。 例子 (Example) 以下示例演示了在Foundation中使用combined column/row类 - <!DOCTYPE html> <html> <head> <title>Foundation Template</title> <meta name = "vi
This plugin, applied to a number of HTML tables, provides the behaviour of resizing their rows by clicking over a "handler hint"
我有一个数据帧,它有一个数组类型的复杂列数据类型
我正在尝试为我的JTable创建行标题。我在这里和这里做过研究,但几乎什么都没有。我的发现并没有保持系统的外观。 到目前为止,我发现: 第一列(没有名字的那列)是我能做到的最好的一列。我使用了表头渲染器,并将其应用于行单元格。这在一定程度上起了作用。正如您所见,降序/升序排序的小箭头图标出现在列的每个单元格中,单元格现在为灰色。除此之外,这是一次彻底的失败。此外,我不希望我的行标题中有任何箭头图标