【发布时间】:2019-04-28 19:42:49
【问题描述】:
在 Spark 中,这个 json 在 dataframe(DF) 中,现在我们必须导航到表(在基于 cust 的 json 中),我们必须读取表的第一个块并且必须准备 sql 查询。
例如:SELECT CUST_NAME FROM CUST WHERE CUST_ID =112
我们必须在数据库中执行此查询并将结果存储在 json 文件中。
{
"cust": "Retails",
"tables": [
{
"Name":"customer",
"table_NAME":"cust",
"param1":"cust_id",
"val":"112",
"op":"cust_name"
},
{
"Name":"sales",
"table_NAME":"sale",
"param1":"country",
"val":"ind",
"op":"monthly_sale"
}]
}
root |-- cust: string (nullable = true)
|-- tables: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- Name: string (nullable = true)
| | |-- op: string (nullable = true)
| | |-- param1: string (nullable = true)
| | |-- table_NAME: string (nullable = true)
| | |-- val: string (nullable = true)
第二个表块相同。
例如:SELECT MONTHLY_SALE FROM SALE WHERE COUNTRY = 'IND'
必须在数据库中执行此查询,并且必须将此结果存储在上述 json 文件中。
执行此操作的最佳方法是什么?有什么想法吗?
【问题讨论】:
-
你能发布 df.printSchema 的输出吗?
-
root |-- cust: 字符串 (nullable = true) |-- 表格: 数组 (nullable = true) | |-- 元素:结构 (containsNull = true) | | |-- 名称:字符串(可为空=真)| | |-- 操作:字符串(可为空=真)| | |-- 参数1:字符串(可为空=真)| | |-- 表名:字符串(可为空=真)| | |-- val: string (nullable = true)
标签: apache-spark apache-spark-sql apache-spark-mllib