

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan perintah ajaib
<a name="notebooks-spark-magics"></a>

Perintah ajaib, atau sihir, adalah perintah khusus yang dapat Anda jalankan di sel notebook. Misalnya, `%env` menunjukkan variabel lingkungan dalam sesi notebook. Athena mendukung fungsi sihir di 6.0.3. IPython 

Bagian ini menunjukkan beberapa perintah sihir utama di Athena untuk Apache Spark.
+  Untuk melihat daftar perintah ajaib di Athena, jalankan perintah **%lsmagic** di sel notebook. 
+ Untuk informasi tentang menggunakan sihir untuk membuat grafik di notebook Athena, lihat. [Gunakan sihir untuk membuat grafik data](notebooks-spark-magics-graphs.md)
+ Untuk informasi tentang perintah sihir tambahan, lihat [Perintah sihir bawaan](https://ipython.readthedocs.io/en/stable/interactive/magics.html) dalam IPython dokumentasi.

**catatan**  
Saat ini, `%pip` perintah gagal saat dijalankan. Ini adalah masalah yang diketahui. 

**Topics**
+ [Sihir sel](notebooks-spark-magics-cell-magics.md)
+ [Sihir Garis](notebooks-spark-magics-line-magics.md)
+ [Sihir grafik](notebooks-spark-magics-graphs.md)

# Gunakan sihir sel
<a name="notebooks-spark-magics-cell-magics"></a>

Sihir yang ditulis pada beberapa baris didahului oleh tanda persen ganda (`%%`) dan disebut fungsi sihir sel atau sihir sel.

## %%sql
<a name="notebooks-spark-magics-sql"></a>

Sihir sel ini memungkinkan untuk menjalankan pernyataan SQL secara langsung tanpa harus menghiasnya dengan pernyataan Spark SQL. Perintah ini juga menampilkan output dengan secara implisit memanggil kerangka `.show()` data yang dikembalikan.

![\[Menggunakan%%sql.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-1.png)


`%%sql`Perintah auto memotong output kolom dengan lebar 20 karakter. Saat ini, pengaturan ini tidak dapat dikonfigurasi. Untuk mengatasi batasan ini, gunakan sintaks lengkap berikut dan modifikasi parameter `show` metode yang sesuai. 

```
spark.sql("""YOUR_SQL""").show(n=number, truncate=number, vertical=bool)
```
+ **n**`int`, opsional. Jumlah baris yang akan ditampilkan.
+ **memotong** — `bool` atau`int`, opsional — Jika`true`, memotong string lebih dari 20 karakter. Ketika diatur ke angka yang lebih besar dari 1, potong string panjang ke panjang yang ditentukan dan sel sejajar kanan.
+ **vertikal** -`bool`, opsional. Jika`true`, mencetak baris keluaran secara vertikal (satu baris per nilai kolom).

# Gunakan sihir garis
<a name="notebooks-spark-magics-line-magics"></a>

Sihir yang berada pada satu baris didahului oleh tanda persen (`%`) dan disebut fungsi sihir garis atau sihir garis.

## %bantuan
<a name="notebooks-spark-magics-help"></a>

Menampilkan deskripsi perintah ajaib yang tersedia.

![\[Menggunakan%help.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-2.png)


## %list\$1sessions
<a name="notebooks-spark-magics-list_sessions"></a>

Daftar sesi yang terkait dengan notebook. Informasi untuk setiap sesi mencakup ID sesi, status sesi, dan tanggal dan waktu sesi dimulai dan berakhir.

![\[Menggunakan%list_sessions.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-3.png)


## %session\$1id
<a name="notebooks-spark-magics-session_id"></a>

Mengambil ID sesi saat ini.

![\[Menggunakansession_id.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-4.png)


## %set\$1log\$1level
<a name="notebooks-spark-magics-set_log_level"></a>

Menetapkan atau mengatur ulang logger untuk menggunakan tingkat log yang ditentukan. Nilai yang mungkin adalah`DEBUG`,`ERROR`,`FATAL`,`INFO`, dan `WARN` atau`WARNING`. Nilai harus huruf besar dan tidak boleh diapit dalam tanda kutip tunggal atau ganda.

![\[Menggunakan%set_log_level.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-5.png)


## %status
<a name="notebooks-spark-magics-status"></a>

Menjelaskan sesi saat ini. Outputnya mencakup ID sesi, status sesi, nama grup kerja, versi PySpark mesin, dan waktu mulai sesi. Perintah ajaib ini membutuhkan sesi aktif untuk mengambil detail sesi.

Berikut ini adalah nilai yang mungkin untuk status:

**MENCIPTAKAN** — Sesi sedang dimulai, termasuk memperoleh sumber daya.

**DIBUAT** - Sesi telah dimulai.

**IDLE** — Sesi ini dapat menerima perhitungan.

**SIBUK** — Sesi sedang memproses tugas lain dan tidak dapat menerima perhitungan.

**TERMINATING** — Sesi sedang dalam proses shutting down.

**TERMINATED** — Sesi dan sumber dayanya tidak lagi berjalan.

**DEGRADASI** — Sesi ini tidak memiliki koordinator yang sehat.

**GAGAL** — Karena kegagalan, sesi dan sumber dayanya tidak lagi berjalan.

![\[Menggunakan%status.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-6.png)


# Gunakan sihir untuk membuat grafik data
<a name="notebooks-spark-magics-graphs"></a>

Sihir baris di bagian ini mengkhususkan diri dalam rendering data untuk jenis data tertentu atau dalam hubungannya dengan perpustakaan grafik.

## %tabel
<a name="notebooks-spark-magics-graphs-table"></a>

Anda dapat menggunakan perintah `%table` ajaib untuk menampilkan data kerangka data dalam format tabel.

Contoh berikut membuat kerangka data dengan dua kolom dan tiga baris data, kemudian menampilkan data dalam format tabel.

![\[Menggunakan perintah ajaib %table.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-graphs-1.png)


## %matplot
<a name="notebooks-spark-magics-graphs-matplot"></a>

[Matplotlib](https://matplotlib.org/) adalah perpustakaan komprehensif untuk membuat visualisasi statis, animasi, dan interaktif dengan Python. Anda dapat menggunakan perintah `%matplot` ajaib untuk membuat grafik setelah Anda mengimpor pustaka matplotlib ke dalam sel notebook.

Contoh berikut mengimpor pustaka matplotlib, membuat satu set koordinat x dan y, dan kemudian menggunakan perintah use `%matplot` magic untuk membuat grafik poin.

```
import matplotlib.pyplot as plt 
x=[3,4,5,6,7,8,9,10,11,12] 
y= [9,16,25,36,49,64,81,100,121,144] 
plt.plot(x,y) 
%matplot plt
```

![\[Menggunakan perintah ajaib %matplot.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-graphs-2.png)


### Gunakan pustaka matplotlib dan seaborn bersama-sama
<a name="notebooks-spark-magics-graphs-using-the-matplotlib-and-seaborn-libraries-together"></a>

[Seaborn](https://seaborn.pydata.org/tutorial/introduction) adalah perpustakaan untuk membuat grafik statistik dengan Python. Ini dibangun di atas matplotlib dan terintegrasi erat dengan struktur data panda [(analisis data Python)](https://pandas.pydata.org/). Anda juga dapat menggunakan perintah `%matplot` ajaib untuk membuat data seaborn.

Contoh berikut menggunakan pustaka matplotlib dan seaborn untuk membuat grafik batang sederhana.

```
import matplotlib.pyplot as plt 
import seaborn as sns 

x = ['A', 'B', 'C'] 
y = [1, 5, 3] 

sns.barplot(x, y) 
%matplot plt
```

![\[Menggunakan %matplot untuk merender data seaborn.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-graphs-3.png)


## %plot
<a name="notebooks-spark-magics-graphs-plotly"></a>

[Plotly](https://plotly.com/python/) adalah perpustakaan grafik open source untuk Python yang dapat Anda gunakan untuk membuat grafik interaktif. Anda menggunakan perintah `%ploty` ajaib untuk membuat data ploty.

Contoh berikut menggunakan perpustakaan [StringIO](https://docs.python.org/3.13/library/io.html#io.StringIO), plotly, dan panda pada data harga saham untuk membuat grafik aktivitas saham dari Februari dan Maret 2015.

```
from io import StringIO 
csvString = """ 
Date,AAPL.Open,AAPL.High,AAPL.Low,AAPL.Close,AAPL.Volume,AAPL.Adjusted,dn,mavg,up,direction 
2015-02-17,127.489998,128.880005,126.919998,127.830002,63152400,122.905254,106.7410523,117.9276669,129.1142814,Increasing 
2015-02-18,127.629997,128.779999,127.449997,128.720001,44891700,123.760965,107.842423,118.9403335,130.0382439,Increasing 
2015-02-19,128.479996,129.029999,128.330002,128.449997,37362400,123.501363,108.8942449,119.8891668,130.8840887,Decreasing 
2015-02-20,128.619995,129.5,128.050003,129.5,48948400,124.510914,109.7854494,120.7635001,131.7415509,Increasing 
2015-02-23,130.020004,133,129.660004,133,70974100,127.876074,110.3725162,121.7201668,133.0678174,Increasing 
2015-02-24,132.940002,133.600006,131.169998,132.169998,69228100,127.078049,111.0948689,122.6648335,134.2347981,Decreasing 
2015-02-25,131.559998,131.600006,128.149994,128.789993,74711700,123.828261,113.2119183,123.6296667,134.0474151,Decreasing 
2015-02-26,128.789993,130.869995,126.610001,130.419998,91287500,125.395469,114.1652991,124.2823333,134.3993674,Increasing 
2015-02-27,130,130.570007,128.240005,128.460007,62014800,123.510987,114.9668484,124.8426669,134.7184854,Decreasing 
2015-03-02,129.25,130.279999,128.300003,129.089996,48096700,124.116706,115.8770904,125.4036668,134.9302432,Decreasing 
2015-03-03,128.960007,129.520004,128.089996,129.360001,37816300,124.376308,116.9535132,125.9551669,134.9568205,Increasing 
2015-03-04,129.100006,129.559998,128.320007,128.539993,31666300,123.587892,118.0874253,126.4730002,134.8585751,Decreasing 
2015-03-05,128.580002,128.75,125.760002,126.410004,56517100,121.539962,119.1048311,126.848667,134.5925029,Decreasing 
2015-03-06,128.399994,129.369995,126.260002,126.599998,72842100,121.722637,120.190797,127.2288335,134.26687,Decreasing 
2015-03-09,127.959999,129.570007,125.059998,127.139999,88528500,122.241834,121.6289771,127.631167,133.6333568,Decreasing 
2015-03-10,126.410004,127.220001,123.800003,124.510002,68856600,119.71316,123.1164763,127.9235004,132.7305246,Decreasing 
""" 
csvStringIO = StringIO(csvString) 
 
from io import StringIO 
import plotly.graph_objects as go 
import pandas as pd 
from datetime import datetime 
df = pd.read_csv(csvStringIO) 
fig = go.Figure(data=[go.Candlestick(x=df['Date'], 
open=df['AAPL.Open'], 
high=df['AAPL.High'], 
low=df['AAPL.Low'], 
close=df['AAPL.Close'])]) 
%plotly fig
```

![\[Menggunakan perintah sihir %ploty.\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/notebooks-spark-magics-graphs-4.png)
