Databricksのクラスターにはいくつかの種類があります。Unity Catalogを活用する際には共有クラスターがお勧めなのですが、initスクリプトが使えないなどの制限がありました。
しかし、こちらの記事にありますように、共有クラスターでもinitスクリプトが使えるようになりました!
早速やってみます。
initスクリプトの作成
こちらで使っているinitスクリプトを使います。
#!/bin/bash
apt-get --yes install libsndfile1
ローカルマシンにこちらのシェルスクリプトファイルを保存します。
ボリュームへのアップロード
Databricksのデータエクスプローラにアクセスして、シェルスクリプトファイルをVol.にアップロードします。シェルスクリプトのファイルのパスをコピーします。
許可リストにinitスクリプトを追加
データエクスプローラのタイトルの右にあるギアマークをクリックします。
Allowed JAR/Init Scriptsタブを開きます。
追加をクリックして、タイプはInit Script
、ソースタイプVolume
、ソースに先ほどコピーしたinitスクリプトのパスを指定して許可リストに追加します。
クラスターにおけるinitスクリプトの設定
共有クラスターを作成し、ランタイムには13.3以降を選択します。そうしないとinitスクリプトは設定できません。
高度なオプション > initスクリプトで、上で指定したinitスクリプトを指定して追加します。
クラスターの起動
%pip install librosa
# Beat tracking example
import librosa
# 1. Get the file path to an included audio example
filename = librosa.example('nutcracker')
# 2. Load the audio as a waveform `y`
# Store the sampling rate as `sr`
y, sr = librosa.load(filename)
# 3. Run the default beat tracker
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
print('Estimated tempo: {:.2f} beats per minute'.format(tempo))
# 4. Convert the frame indices of beat events into timestamps
beat_times = librosa.frames_to_time(beat_frames, sr=sr)
Estimated tempo: 107.67 beats per minute
動きました!