Databricks에서 matplotlib의 일본어 대응

2021/8/5 추가
다음 문서에서 볼 수 있듯이 노트북 셀에서 %pip install japanize-matplotlib로 설정하거나 클러스터 라이브러리로 japanize-matplotlib를 설치하고 import japanize_matplotlib로 해결할 수 있습니다.


샘플 노트북은 여기에서 다운로드할 수 있습니다.
Databricks에서 matplotlib를 사용할 때도 일본어가 깨져(□가 되는) 현상이 발생합니다. 또한 Databricks 내장 시각화 기능에서는 깨짐이 발생하지 않습니다.
이 문제를 해결하려면 다음 조치가 필요합니다.
matplotlib의 일본어 편지 해결 - Qiita
그러나 일본어 글꼴을 설치해도 클러스터를 중지하면 글꼴 파일이 삭제되므로 추가 조치가 필요합니다. Databricks에서는 init script에 일본어 설치 프로세스를 추가합니다.

init script로 일본어 글꼴 설치


  • 다음 스크립트를 실행하면 DBFS /databricks/scripts/japanese-font-install.sh에 init script가 작성됩니다.
  • Clusters에서 일본어 글꼴을 사용하는 클러스터에 init script를 지정하십시오.


  • 참고 정보
  • Cluster node initialization scripts — Databricks Documentation

  • Configure clusters — Databricks Documentation init script의 동작을 로깅 할 수 있습니다
  • # init script格納ディレクトリの作成
    dbutils.fs.mkdirs("dbfs:/databricks/scripts/")
    
    # init scriptの作成
    dbutils.fs.put("/databricks/scripts/japanese-font-install.sh","""
    #!/bin/bash
    apt-get install fonts-takao-mincho fonts-takao-gothic fonts-takao-pgothic -y""", True)
    
    display(dbutils.fs.ls("dbfs:/databricks/scripts/japanese-font-install.sh"))
    

    동작 확인

    import matplotlib 
    import matplotlib.font_manager as fm 
    originalFilelist = fm.findSystemFonts()
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    # インストール済みフォントの表示
    originalFilelist
    
    # 日本語フォントの存在を確認
    fm.findfont('TakaoGothic')
    

    일본어 글꼴 테스트

    %matplotlib inline
    
    plt.ion()
    fig2 = plt.figure()
    axl = fig2.add_subplot(1,1,1)
    data1 = np.arange(1001)
    matplotlib.rc('font', family='TakaoGothic')
    line1, = axl.plot(data1[:], label="あああtest Value")
    axl.legend(loc="best")
    csfont = {'fontname':'TakaoPMincho'}
    hfont = {'fontname':'TakaoPMincho'}
    display(fig2)
    

    Databricks 무료 평가판


    Databricks 무료 평가판

    좋은 웹페이지 즐겨찾기