Я много исследовал эту тему. У меня есть набор данных размером 3 ТБ.
Ниже приведена схема данных для таблицы:
root
|-- user: string (nullable = true)
|-- attributes: array (nullable = true)
| |-- element: string (containsNull = true)
Каждый день я получаю список пользователей, для которых мне нужны атрибуты. Я хотел знать, смогу ли я написать вышеупомянутую схему в файл паркета с первыми 2 письмами пользователей. Например,
Omkar | [a,b,c,d,e]
Mac | [a,b,c,d,e]
Zee | [a,b,c,d,e]
Kim | [a,b,c,d,e]
Kelly | [a,b,c,d,e]
На приведенном выше наборе данных я могу сделать что-то вроде этого:
spark.write.mode("overwrite").partitionBy("user".substr(0,2)).parquet("path/to/location")
Делая это, я чувствую, что данных, загруженных в память при следующем присоединении к пользователям, будет очень мало, поскольку мы можем использовать только эти разделы.
Есть ли комментарии, если кто-то реализовал подобное?
Спасибо !!