【发布时间】:2019-10-01 10:29:38
【问题描述】:
我有一个包含表名数组的 json 文件。我想阅读,一一打印所有这些元素并获取数组元素的计数。 我们如何使用 scala 在 databricks 笔记本中实现这一点。
Json 文件:
{
"application_name": "dca_app",
"table_list": ["dca_table1", "dca_table2"]
}
我想要什么:
table count = 2
table1: dca_table1
table2: dca_table2
代码:
val df = spark.read.option("multiline", "true").json("/mnt/config/sample.json")
df.printSchema()
df.show()
val x = df.select("table_list")
print(x)
架构:
root
|-- application_name: string (nullable = true)
|-- table_list: array (nullable = true)
| |-- element: string (containsNull = true)
数据框:
+----------------+--------------------+
|application_name| table_list|
+----------------+--------------------+
| dca_app|[dca_table1, dca_...|
+----------------+--------------------+
我尝试了代码:
val tablelist = df.selectExpr("table_list[0]")
tablelist.show()
但如果我给出 table_list[i],其中 i 是迭代器,代码会产生错误。它在这里需要数值。
提前致谢。
【问题讨论】:
标签: json scala apache-spark