我在RDBMS中有几个数据库表,在当前的逻辑中,所有这些表都被连接起来并给出一些数据,基本上SQL被存储为视图的一部分。使用sqoop将数据推送到HDFS中,需要应用一些分组和按操作排序。
什么可能是连接数据集的最佳方式,如转储所需的列到内存(如df.registeredTempTable())和应用连接,或者我可以使用数据集连接,因为数据在HDFS的不同文件中可用。
问候阿南
我建议再往前走一点。我不会选择在数据集之间进行连接。
我将采用下一种方法:
让我们来看看你提到的例子:
1.Sqoop数据:您已经介绍了这个步骤。
2.创建Avro文档
虚拟数据
Departament
id, name
1 Sales
2 Technology
Employers
id, department_id, name
1 1 John
2 1 Bruno
3 2 Alicia
4 2 George
文档的结构取决于您将如何使用数据,可以有两个选项:
{"name": "John", "department": "Sales"}
{"name": "Bruno", "department": "Sales"}
{"name": "Alicia", "department": "Technology"}
{"name": "George", "department": "Technology"}
{"name": "Sales", "Employers": ["John", "Bruno"]}
{"name": "Technology", "Employers": ["Alicia", "George"]}
这样查询就容易多了。
采用这种方法的好处是,当关系数据库模型包含太多表时,查询会变得更加复杂,而且,当表的大小过大时,在运行时连接数据会花费大量时间,这是因为希望在ETL管道期间而不是在运行时对数据进行转换。
希望这澄清了方法。
问题内容: 当我仔细观察时,我唯一提出的疑问是: 找不到适用于实际参数“ org.apache.spark.unsafe.types.UTF8String”的适用构造函数/方法;候选者为:“ public void sparkSQL.Tweet.setId(long)” 问题答案: 正如@ user9718686所写,id字段具有不同的类型:在json文件和类定义中。当您将其读入时,Spark会从
我正在评估将现有的RDD代码替换为Dataset。对于我的一个用例,我无法将数据集映射到另一个用例类。 以下是我想做的。。。 任何帮助都将不胜感激。 但以下例外情况:
null null 为什么要使用UDF/UADF而不是map(假设map保留在数据集表示中)?
我正在尝试使用Spark数据集API,但在进行简单连接时遇到了一些问题。 假设我有两个带有字段的数据集:,那么在的情况下,我的连接如下所示: 但是,对于数据集,有一个。joinWith方法,但相同的方法不起作用:
我是spark的新手,正在尝试使用java将avro数据加载到spark“dataset”(spark 1.6)。我在scala中看到了一些示例,但在java中没有看到。任何指向java示例的指针都会很有帮助。我试图创建一个javaRDD,然后将其转换为“dataset”。我相信一定有一条直截了当的路。
在spark数据集中获取此空错误。滤器 输入CSV: 工作代码: 失败代码(添加以下行返回错误): 返回空错误