เจเฉ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจ
เจเจฟเจนเฉ เจเฉฐเจฎ เจนเจจ เจเฉ เจฆเจฟเจจ-เจชเฉเจฐเจคเฉ-เจฆเจฟเจจ เจฆเฉเจนเจฐเจพเจเจเจฆเฉ เจนเจจ, เจนเจซเจผเจคเฉ เจฌเจพเจ
เจฆ เจนเจซเจผเจคเฉ? เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ, เจฐเจฟเจชเฉเจฐเจเจพเจ เจฒเจฟเจเจฃเฉเจเจเฅค เจคเฉเจธเฉเจ เจกเฉเจเจพ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเฉ เจนเฉ, เจเจธเจฆเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจฐเฉ, เจเจธเจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเฉ (เจเฉเจฐเจพเจซเจผ, เจเจพเจฐเจ เจฌเจฃเจพเจ), เจ
เจคเฉ เจซเจฟเจฐ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจฌเฉเจธ เจจเฉเฉฐ เจญเฉเจเฉเฅค เจชเจฐ เจเฉ เจเจน เจธเจญ เจเจเฉเจฎเฉเจเจฟเจ เจธเฉ เจคเจพเจ เจเฉ เจนเฉเจตเฉเจเจพ?
เจเจธ เจเจฟเจเจเฉเจฐเจฟเจ
เจฒ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฒเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจตเจพเจเจเฉ เจเฉ เจเจเฉเจฎเฉเจเจฟเจ เจฐเจฟเจชเฉเจฐเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเฉเจเจพเฅค เจ
เจคเฉ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจชเฉเจฐเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจตเจฟเฉฑเจ เจเฉเจก เจฆเฉเจเจ เจธเจฟเจฐเจซ 50 เจฒเจพเจเจจเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจเฉเจเจ! เจเฉเจเจฐ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฒเจ เจฌเฉเจ เจฌเจฃเจพ เจฐเจนเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจตเฉ เจชเฉเฉเจนเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ
เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเจพ เจนเฉ: เจชเฉเจฐเฉเจเจเฉเจเจฒ เจเฉเจฐเจธ
เจธเจเฉเจฐเฉเจ เจคเฉเจ เจชเจพเจเจฅเจจ เจกเจฟเจตเฉเจฒเจชเจฐ .เจ เจธเฉเจ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจเจฆเฉ เจนเจพเจ: "Habr" เจฆเฉ เจธเจพเจฐเฉ เจชเจพเจ เจเจพเจ เจฒเจ - "Habr" เจชเฉเจฐเจเจพเจฐ เจเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจฟเจธเฉ เจตเฉ เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจเฉเจฐเจธ เจตเจฟเฉฑเจ เจฆเจพเจเจฒเจพ เจฒเฉเจฃ เจตเฉเจฒเฉ 10 เจฐเฉเจฌเจฒ เจฆเฉ เจเฉเจเฅค
เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ
เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจ
เจธเฉเจ เจเจธเจคเฉเจฎเจพเจฒ เจเจฐเจพเจเจเฉ
pip3 google-cloud-bigquery matplotlib numpy pandas python-telegram-bot เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
Google BigQuery API เจจเฉเฉฐ เจเจจเฉเจเจ เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเฉเจเจฐ เจ
เจธเฉเจ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ Google BigQuery API เจจเจพเจฒ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ เจ
เจธเฉเจ เจเจพเจเจฆเฉ เจนเจพเจ
เจเฉฐเจเจฐเฉเจฒ เจชเฉเจจเจฒ เจตเจฟเฉฑเจ, APIs เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจเฉเจฃเฉ เจ เจคเฉ BigQuery API เจจเฉเฉฐ เจฆเฉเจเฉเฅค
API เจจเฉเฉฐ เจเจจเฉเจเจ เจเจฐเจจ เจฒเจ เจธเจฎเจฐเฉฑเจฅ เจเฉเจฃเฉเฅค
เจเฉฑเจ เจเจพเจคเจพ เจเฉเฉฐเจเฉ เจฌเจฃเจพเจ
เจเจฒเฉ เจซเจฟเจฐ เจคเฉเจ เจเฉฑเจฒเฉเจ
เจซเจฟเจฐ - เจจเจตเจพเจ เจธเฉเจตเจพ เจเจพเจคเจพ, เจ เจคเฉ เจธเฉเจตเจพ เจเจพเจคเจพ เจจเจพเจฎ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจจเจพเจฎ เจฆเจฐเจ เจเจฐเฉเฅค
เจฐเฉเจฒ เจกเจฐเจพเจช-เจกเจพเจเจจ เจธเฉเจเฉ เจตเจฟเฉฑเจเฉเจ, เจชเฉเจฐเฉเจเฉเจเจ > เจฎเจพเจฒเจ เจเฉเจฃเฉ, เจซเจฟเจฐ เจฌเจฃเจพเจเฅค
เจซเจพเจเจฒ เจเฉ เจเจเฉเจฎเฉเจเจฟเจเจฒเฉ เจกเจพเจเจจเจฒเฉเจก เจนเฉ เจเจพเจตเฉเจเฉ, เจเจธ เจจเฉเฉฐ creds.json เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
GOOGLE_APPLICATION_CREDENTIALS เจธเฉเฉฑเจ เจเจฐเฉ, เจเจฐเจฎเฉเจจเจฒ เจตเจฟเฉฑเจ creds.json เจฆเจพ เจฎเจพเจฐเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเฉเฅค
GOOGLE_APPLICATION_CREDENTIALS='[PATH_TO_CREDS.JSON]' เจจเจฟเจฐเจฏเจพเจค เจเจฐเฉ
เจเฉ เจธเจญ เจเฉเจ เจ เฉเจ เจฐเจฟเจนเจพ, เจคเจพเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฒเจฟเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจ เจเจฟเจ เจนเฉเฅค
เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพเจเจฃเจพ
เจเจฟเจเจเฉเจฐเจฟเจ เจฒ เจฒเจ เจ เจธเฉเจ bigquery-public-data.stackoverflow เจคเฉเจ เจกเฉเจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ, เจธเจพเจกเฉ เจฐเจฟเจชเฉเจฐเจ เจฒเจ เจ เจธเฉเจ เจฐเฉเจเจผเจพเจจเจพ เจชเฉเจฐเจเจพเจธเจผเจจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเฉเจฃเจพเจเจเฉเฅค
เจนเจฐ เจเฉเจเจผ เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ เจนเฉ.
เจเฉเจฌเจฒ เจฆเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจเจฐเฉ -> เจกเฉเจเจพ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเฉ -> เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเฉ -> เจเจฟเฉฑเจคเจฐ เจญเฉเจเฉ
เจเจ เจนเจฐเฉเจ เจฅเฉเจฐเฉเจก เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเฅค
BigQuery เจฒเจ เจชเฉเฉฑเจเจเจฟเฉฑเจ
เจชเจนเจฟเจฒเจพเจ เจ เจธเฉเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจจเฉเฉฐ เจเจฏเจพเจค เจเจฐเจฆเฉ เจนเจพเจเฅค
google.cloud เจคเฉเจ bigquery เจเจฏเจพเจค เจเจฐเฉ
เจ เจธเฉเจ query_to_bigquery เจจเจพเจฎเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจเจฟเฉฑเจฅเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
def query_to_bigquery(query):
client = bigquery.Client()
query_job = client.query(query)
result = query_job.result()
dataframe = result.to_dataframe()
return dataframe
เจเจน เจซเฉฐเจเจธเจผเจจ เจเฉฑเจ เจกเฉเจเจพ เจซเจฐเฉเจฎ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจฌเฉเจจเจคเฉ เจจเฉเฉฐ เจตเจพเจชเจธ เจเจฐเฉเจเจพเฅค
เจกเจพเจเจพ เจตเจฟเจเจผเฉเจ เจฒ เจเจฐเจจเจพ
เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ, matplotlib เจฆเฉ เจเฉเจฃ เจเจฐเฉเฅค
plp เจฆเฉ เจคเฉเจฐ เจคเฉ matplotlib.pyplot เจเฉฐเจชเฉเจฐเจ เจเจฐเฉ
เจธเจพเจจเฉเฉฐ เจชเฉฐเจ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฟเฉฑเจฅเฉ x x-เจงเฉเจฐเจพ เจกเฉเจเจพ เจนเฉ, x_label เจงเฉเจฐเฉ เจฒเจ เจธเจฟเจฐเจฒเฉเจ เจนเฉ, y y-เจงเฉเจฐเจพ เจกเฉเจเจพ เจนเฉ, y_label เจงเฉเจฐเฉ เจฒเจ เจธเจฟเจฐเจฒเฉเจ เจนเฉ, เจ เจคเฉ เจธเจฟเจฐเจฒเฉเจ เจชเฉเจฐเฉ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจฆเจพ เจธเจฟเจฐเจฒเฉเจ เจนเฉเฅค
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเฉ
เจนเฉเจฃ เจเฉฑเจ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจธเฉเจต เจเจฐเจจ เจฒเจ เจฆเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเจเฅค
เจ เจธเฉเจ เจฐเฉเจเจผเจพเจจเจพ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจชเฉเจธเจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจญเฉเจเจพเจเจเฉเฅค เจชเจนเจฟเจฒเจพเจ เจ เจธเฉเจ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจฒเจฟเจเจฆเฉ เจนเจพเจเฅค
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
เจชเฉเฉฑเจเจเจฟเฉฑเจ 2 เจฆเจธเฉฐเจฌเจฐ, 2018 เจคเฉเจ เจฆเฉ เจนเจซเจผเจคเจฟเจเจ เจฒเจ เจกเจพเจเจพ เจเจเฉฑเจ เจพ เจเจฐเจจ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเจฆเฉ เจนเฉเฅค
เจ เจธเฉเจ เจเจธ เจคเจพเจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟเจเจเจเจฟ 2018-12-02 bigquery-public-data.stackoverflow.post_history เจตเจฟเฉฑเจ เจฐเจฟเจเจพเจฐเจก เจเฉเจคเจพ เจเจฟเจ เจจเจตเฉเจจเจคเจฎ เจกเจพเจเจพ เจนเฉ, เจนเฉเจฐ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจธเจญ เจคเฉเจ เจจเจตเจพเจ เจกเจพเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ CURRENT_DATE() เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจกเจพเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ query_to_bigquery เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเฉเฅค
เจกเฉเจเจพเจซเฉเจฐเฉเจฎ = query_to_bigquery(query)
เจซเจฟเจฐ เจ เจธเฉเจ x-เจงเฉเจฐเฉ เจฒเจ เจฎเจฟเจคเฉ เจกเฉเจเจพ เจเจพเจฒเจฎ, เจ เจคเฉ y-เจงเฉเจฐเฉ เจฒเจ เจเฉเฉฑเจฒ_เจชเฉเจธเจ เจเจพเจฒเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
x = dataframe['date'].tolist()
y = เจกเฉเจเจพเจซเฉเจฐเฉเจฎ['total_posts'].tolist()
เจ เจธเฉเจ เจเจธเจจเฉเฉฐ visualize_bar_chart เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฒเจชเจจเจพ เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจเจฟเฉฑเจคเจฐ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเจพเจเฅค
plt = เจตเจฟเจเจผเฉเจ
เจฒ_เจฌเจพเจฐ_เจเจพเจฐเจ(x=x, x_label='เจคเจฐเฉเจ', y=y, y_label='เจเฉเฉฑเจฒ เจชเฉเจธเจ', เจธเจฟเจฐเจฒเฉเจ='เจฐเฉเจเจผเจพเจจเจพ เจชเฉเจธเจ')
plt.savefig('viz.png')
เจ เจธเฉเจ เจเจธ เจเฉเจก เจจเฉเฉฐ get_and_save_image เจจเจพเจฎเจ เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจฒเจชเฉเจเจฆเฉ เจนเจพเจเฅค
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
เจเฉฑเจ เจเจฟเฉฑเจคเจฐ เจญเฉเจเฉ
เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจจเฉเฉฐ เจฐเจฟเจชเฉเจฐเจ เจญเฉเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ chat_id เจชเฉเจฐเจพเจฎเฉเจเจฐ เจเจพเจฃเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ
เจธเฉเจ เจตเจฐเจคเจฆเฉ เจนเจพเจ
เจนเฉเจฃ send_image เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเฅค เจเจน เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจฎเฉเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจ เจฒเจ get_and_save_image เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเจเจพเฅค เจ เจคเฉ เจซเจฟเจฐ เจ เจธเฉเจ เจธเจญ เจเฉเจ เจธเจนเฉ เจธเฉฐเจชเจฐเจ เจจเฉเฉฐ เจญเฉเจเจฆเฉ เจนเจพเจ.
def send_image(bot, update):
get_and_save_image()
chat_id = 'CHAT_ID_RECEIVER'
bot.send_photo(chat_id=chat_id, photo=open('viz.png','rb'))
เจฎเฉเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ
เจ เฉฐเจค เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจนเฉเจฐ เจซเฉฐเจเจธเจผเจจ, เจฎเฉเฉฑเจ, เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจเฅค เจฌเฉเจ เจฒเจ YOUR_TOKEN เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ เจจเจพ เจญเฉเฉฑเจฒเฉเฅค
เจฏเจพเจฆ เจฐเฉฑเจเฉ: เจเจน เจชเฉเจฐเฉเจเจฐเจพเจฎ เจคเฉเจนเจพเจกเฉ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจธเจฎเฉเจ 'เจคเฉ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจญเฉเจ เจฆเฉเจตเฉเจเจพเฅค เจฎเจฟเจธเจพเจฒ เจฒเจ, เจ เจธเฉเจ เจนเจฐ เจฐเฉเจเจผ เจธเจตเฉเจฐเฉ เจจเฉเจ เจตเจเฉ เจฐเจฟเจชเฉเจฐเจ เจญเฉเจเจพเจเจเฉเฅค
def main():
updater = Updater('YOUR_TOKEN')
updater.job_queue.run_daily(send_image, time=datetime.datetime.strptime('9:00AM', '%I:%M%p').time(), days=(0,1,2,3,4,5,6))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจกเฉ เจ เจฐเจเจผเฉ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
from google.cloud import bigquery
from telegram.ext import Updater
import matplotlib.pyplot as plt
import numpy as np
import datetime
def query_to_bigquery(query):
client = bigquery.Client()
query_job = client.query(query)
result = query_job.result()
dataframe = result.to_dataframe()
return dataframe
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
def send_image(bot, update):
get_and_save_image()
chat_id = 'CHAT_ID_RECEIVER'
bot.send_photo(chat_id=chat_id, photo=open('viz.png', 'rb'))
def main():
updater = Updater('YOUR_TOKEN')
updater.job_queue.run_daily(send_image, time=datetime.datetime.strptime('9:00AM', '%I:%M%p').time(), days=(0,1,2,3,4,5,6))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
เจซเจพเจเจฒ เจจเฉเฉฐ เจธเฉเจต เจเจฐเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ main.py เจเจพเจฒ เจเจฐเฉเฅค
เจ เจธเฉเจ เจเจฐเจฎเฉเจจเจฒ เจตเจฟเฉฑเจ เจเจฎเจพเจเจก เจฆเจพเจเจฒ เจเจฐเจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ:
python3 main.py
เจธเจญ เจคเจฟเจเจฐ เจนเฉเฅค เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจเฉเจก เจฆเฉเจเจ 50 เจฒเจพเจเจจเจพเจ เจตเจพเจฒเจพ เจเฉฑเจ เจฐเฉเจฌเฉเจ เจนเฉ เจเฉ เจธเจพเจกเฉ เจฆเจเจฒ เจคเฉเจ เจฌเจฟเจจเจพเจ เจฐเจฟเจชเฉเจฐเจเจพเจ เจคเจฟเจเจฐ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจ เจฌเฉเจ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ
เจคเฉเจธเฉเจ เจฎเฉเจเฉฐเจฎเจฒ เจเฉเจก 'เจคเฉ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจธเจเจฟเฉฑเจฒเจฌเจพเจเจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจเจฐเจฆเจพ เจนเฉ:
- เจฆเฉ เจธเจพเจฒเจพ เจชเฉเจฐเฉเจเจเฉเจเจฒ เจเฉเจฐเจธ
"เจฎเฉเจ เจเฉฑเจ เจชเฉเจฐเฉ เจตเฉเฉฑเจฌ เจกเจฟเจตเฉเจฒเจชเจฐ เจนเจพเจ" .- Onlineเจจเจฒเจพเจเจจ เจเฉเจฐเจธ
"0 เจคเฉเจ C# เจกเจฟเจตเฉเจฒเจชเจฐ" .- เจชเฉเจฐเฉเจเจเฉเจเจฒ เจธเจพเจฒ เจฆเจพ เจเฉเจฐเจธ
"0 เจคเฉเจ PRO เจคเฉฑเจ PHP เจกเจฟเจตเฉเจฒเจชเจฐ" .
เจธเจฐเฉเจค: www.habr.com