У меня есть файл JSON с массивом имен таблиц.Я хочу прочитать, распечатать все эти элементы один за другим и получить количество элементов массива.Как мы можем добиться этого в блокноте данных, используя scala.
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)
dataframe:
+----------------+--------------------+
|application_name| table_list|
+----------------+--------------------+
| dca_app|[dca_table1, dca_...|
+----------------+--------------------+
Я попытался с кодом:
val tablelist = df.selectExpr("table_list[0]")
tablelist.show()
, но если я дам table_list [i], гдея итератор, код генерирует ошибку.здесь ожидается числовое значение.
заранее спасибо.