Я получил некоторые результаты запроса от Neo4j в виде массива [AnyRef]. Каждый элемент массива выглядит так:
Record<{group_name: "Amig@s & Friends", event_name: "Dia de Los muertos Day of the dead", venue_name: "Dvorak Park (Pilsen)", distance: 2615.3793888968457}>
Вопрос в том, как я могу извлечь имя группы, имя события, имя места и расстояние в качестве полей, чтобы записать их в файл csv или создать кадр данных в Spark? Есть ли какой-нибудь метод для извлечения значений записей?
Вот мой код для запроса логики:
def execNeo4jSearchQuery(neo4jSession: Session, data: Array[String]) = {
val query1 = "MATCH (m:Member)-[mtg_r:MT_TO_MEMBER]->(mt:MemberTopics)-[mtt_r:MT_TO_TOPIC]->(t:Topic), (t1:Topic)-[tt_r:GT_TO_TOPIC]->(gt:GroupTopics)-[tg_r:GT_TO_GROUP]->(g:Group)-[h_r:HAS]->(e:Event)-[a_r:AT]->(v:Venue) WHERE mt.topic_id = gt.topic_id AND distance(point({ longitude: " + data(2) + ", latitude: " + data(1) + "}),point({ longitude: v.lon, latitude: v.lat })) < 4000 AND mt.member_id = " + data(0) + " RETURN distinct g.group_name " +
"as group_name, e.event_name as event_name, v.venue_name as venue_name, distance(point({ longitude: " + data(2) + ", latitude: " + data(1) + "}),point({ longitude: v.lon, latitude: v.lat })) as distance"
val results = neo4jSession.run(query1).list()
val resultsArray = results
.toArray()
.map(_.toString)
.foreach(println)
}