Data Engineer
def extract_from_s3(**kwargs): df = pd.read_csv("s3://my-bucket/data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d"))) kwargs["ti"].xcom_push(key="df", value=df.to_dict()) def load_to_raw_table(**kwargs): df = pd.DataFrame(kwargs["ti"].xcom_pull(task_ids="extract", key="df")) rows = [tuple(r) for r in df[["transaction_id", "user_id", "amount", "created_at"]].to_numpy()] CLICKHOUSE_CLIENT.execute( "INSERT INTO raw.transactions (transaction_id, user_id, amount, created_at) VALUES", rows ) def build_aggregate_view(): query = """ INSERT INTO datamarts.daily_revenue_per_country SELECT toDate(r.created_at) as event_date, u.country, sum(r.amount) as total_revenue FROM raw.transactions r LEFT JOIN core.userMetadata u ON r.user_id = u.UserId WHERE toDate(r.created_at) = '{}' GROUP BY event_date, u.country """.format(datetime.now().strftime("%Y-%m-%d")) CLICKHOUSE_CLIENT.execute(query) transactions_sensor = S3KeySensor( task_id="transactions_sensor", bucket_key="data/transactions_{}.csv".format(datetime.now().strftime("%Y-%m-%d")), bucket_name="my-bucket", aws_conn_id="aws_default", timeout=600, poke_interval=30, mode="poke" ) extract = PythonOperator( task_id="extract", python_callable=extract_from_s3, provide_context=True ) load = PythonOperator( task_id="load", python_callable=load_to_raw_table, provide_context=True ) aggregate = PythonOperator( task_id="aggregate", python_callable=build_aggregate_view ) transactions_sensor >> extract >> load >> aggregate
Терезе функциясы SUM() OVER (PARTITION BY user_id) — бир учурда сатып алуу датасын ORDER BY кошуп жатабыз, экинчи учурда — кошпойбуз. Эмне айырмасы?
Spark кайсы чөйрөдө ишке киргизилди?
Parquet кандай сактоо түрү бар: саптык же баганалык?
Sparkтагы UDFлердин жаман жактары эмнеде жана алардын кемчилиги эмнеде?
Сенин travel тармагына кызыгууну эмне түртөт? Мүмкүн, өзүң саякаттаганды жактырасың, же travel-tech сени кандайдыр бир жол менен кызыктырды.
Pythonдогу өзгөрүлмө жана өзгөрүлбөс маалымат түрлөрү жөнүндө айтып бериңиз жана мисалдар келтириңиз.
Маалыматтарды бириктирүү кайсы талааларда болду жана витриналарда дублдалары кантип жоюлду?
Батч жүктөө же стриминг менен иштедиңби?
Неге тизмени сөздүк ачкычы катары колдонууга болбойт?
Кайсы Docker сүрөттөрүн түзүшүңүз керек болду жана эмне үчүн?
Salary таблицасындагы ар бир сапта кызматкердин атын, датасын, маянасын көрсөтүңүз жана терезе функциясын колдонуп, "бөлүм боюнча орто маяна ушул датада" бағанын кошуңуз.
Терезе функциясынын ичинде сорттоо жана суроо-талаптагы акыркы ORDER BY сорттоо кандайча байланыштуу?
print(len(' '.join(map(str, [0, 1]))))
Spark колдонмосунун ресурстарын кантип башкаруу керек, анткени кирүү маалыматтарынын көлөмүн өзгөртүп жатканда эс тутумду ашыкча колдонбоо керек?
Бөлүү жана таратуу (sharding) эмне?
dict1 = { (1, 2), [3, 4, 5] : 0 } var = 1, 2
Масъала #2 Ҳар бир бўлимда TOP-3 ишчи бўйича маълумотлар чиқарувчи сўров ёзинг. Бўлим номи, ишчи номи ва унинг маошини кўрсатинг. employee жадвали: | id | name | salary | dept_id | |----|-------|--------|---------| | 10 | John | 1000 | 2 | | 20 | Tom | 5000 | 3 | | 30 | Bill | 3000 | 2 | department жадвали: | id | name | |----|-----------| | 1 | Marketing | | 2 | IT | | 3 | Молия | Натижа: department_name, num, employee_name, salary cte сифатида: select d.name as department_name, e.name as employee_name, e.salary, dense_rank from employee e join department d on e.id = d.id
Компанияда акыркы 2,5 жылда кызыктуу тапшырма тууралуу айтып бериңиз, мисалы, ClickHouse менен байланыштуу.
Рутиндик процесстерди автоматташтыруу үчүн жасалма интеллектти колдонгон мисалыңды айтып бер.