Тестирую Yandex Data Proc
Не буду описывать подробно как заказать услугу Data Proc, так как это оказалось достаточно просто.
Генерируем ключ ( желательно без пароля ) для более удобного доступа.
ssh-keygen -t rsa
Создаем Data Proc кластер ... next next finish ...
Копируем данные на ноду:
cat "/Users/yuriygavrilov/Documents/My Tableau Repository/Datasources/2022.1/en_US-US/Sample - Superstore.txt" | ssh -i /Users/yuriygavrilov/ssh_key/ya_np/ya ubuntu@51.250.79.62 'cat | hadoop fs -put - "hdfs://rc1a-dataproc-m-a1s92pxkgxp555pm.mdb.yandexcloud.net:8020/user/hive/warehouse/stor/stor.csv"'
Обвязываем табличку:
create external table store
(Row_ID string ,
Order_ID string ,
Order_Date string ,
Ship_Date string ,
Ship_Mode string ,
Customer_ID string ,
Customer_Name string ,
Segment string ,
Country_Region string ,
City string ,
State string ,
Postal_Code string ,
Region string ,
Product_ID string ,
Category string ,
Sub_Category string ,
Product_Name string ,
Sales string ,
Quantity string ,
Discount string ,
Profit string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION 'hdfs://rc1a-dataproc-m-a1s92pxkgxp555pm.mdb.yandexcloud.net:8020/user/hive/warehouse/stor/'
tblproperties ("skip.header.line.count"="1");
Создаем таблицу итогов продаж по регионам:
create table region_sales
(region string,
sales float
);
Загружаем данные:
insert into region_sales (region, sales) select region, sum(REPLACE(sales, ",", ".")) as sales from store group by region ;
Проверяем итоги:
select * from region_sales
Central 501239.9
East 678781.25
South 391721.9
West 725457.8
Все ровно)
но вот запросы исполняются достаточно долго 12 секунд, но никто и не обещал скорость на малых данных.
В целом очень удобно. Заказал, загрузил, посчитал и выключил.
А теперь тестируем Спарк:
spark-shell
import spark.implicits._
import spark.sql
sql("SELECT region, sum(sales) FROM store_orc group by Region").show()
+-------+------------------+
| region| sum(sales)|
+-------+------------------+
| South|391721.90536534786|
|Central| 501239.889593184|
| East| 678781.2377765179|
| West| 725457.8231142759|
+-------+------------------+
Класс!) заработало)
Надо будет что-то посчитать сложное...