Покатушки в Степаново
Оригинал:
После апскейла через tost.ai:

И еще

С Новым годом 🎄
С новым счастьем 🐇🎉🎄🎆
Запустил пару нод на mystnodes.com
Проект конечно интересный, но приносит не так много денег, как хотелось бы. За пару дней работы около двух долларов с четырех нод. Выгодней оказалась та, что подключена в гигабитному интернету. Так что смысл есть в запуске, если у вас действительно хороший канал связи. Проект реализует услуги децентрализованного vpn сервиса и принимает оплату в крипте (запрещено в рф). В планах запустить ноду ankr. Это уже будет посерьезнее.

Протестировал новый рестик Турандот
Официант решил принести нам сюрприз потому, что подруга поинтересовалась, что за блюдо заказал соседний стол. т.к. выглядело эффектно. Официант решил порадовать сюрпризом нас тоже и принес пирожное, но оно оказалось не кстати. Все таки дня рождения ни у кого в этот день нет, а мы все равно получили торт с демонстрацией. Сошлись на том, что это в честь нашего первого визита в ресторан. Может быть это такое отношение, ко всем новым клиентам или новый способ развода на чайного сомелье)) (чай от который стоит 300 рублей). В общем впечатления странные. Второй раз туда идти не хочется. Про кухню ничего сказать не могу т.к. не пробовал, вероятно хорошая, а фрукты оказались достаточно простыми на вкус. Еще один курьезный момент произошел, когда я попросил счет. Его сначала принесли без включенного тортика. Но потом когда узнали, что чаевые будут 5% решили добавить в счет тортик. Так что чаевые 5% достаточно мало для такого заведения. Надо было оставить большое, а то не удобно как-то получилось.

Пробежал еще десятку
RUNIT 10km

Прочитал полезную книгу data science at the command line
Сразу к делу:

docker pull datasciencetoolbox/dsatcl2e
docker run --rm -it datasciencetoolbox/dsatcl2e
Подробности тут: https://datascienceatthecommandline.com/2e/chapter-2-getting-started.html
cowsay "Let's moove\!"
______________
< Let's moove! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Вот думаю может перевести на русский язык ... хм..
Тестирую 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|
+-------+------------------+
Класс!) заработало)