Tidak, artikel ini bukan tentang monster Microsoft yang besar dan jahat. Dan bagaimana dia lagi menyinggung pengguna. Dan tentang cara memperbaiki cacat menjengkelkan yang muncul dengan pembaruan Agustus lalu dari
Power BI Desktop dengan dukungan
Python diaktifkan, yaitu, masalah visualisasi dalam versi lokal PBI, khususnya
matplotlib .
Dalam sepuluh hari pertama bulan Agustus, Microsoft merilis rilis produk BI yang diaktifkan dengan
Python yang benar-benar luar biasa ditunggu-tunggu dan ditunggu-tunggu. Pada saat penulisan, fungsi ini ada di bagian fitur awal (mis., Hanya versi beta).
Untuk waktu yang lama dan dengan senang hati saya telah menggunakan Power BI dalam pekerjaan saya (baik sebagai analis data dan sebagai pengembang BI). Saya selalu mencoba untuk mencoba fitur-fitur baru yang dengan murah hati diumumkan di bagian pra-rilis. Dan, kita harus membayar upeti kepada tim pengembangan Microsoft, ini hampir selalu solid, versi fitur, opsi, dan visualisasi yang bisa diterapkan.
Komunitas BI khususnya mengharapkan masuknya dukungan Python di Power BI. Bukan berarti fungsionalitas built-in Power BI tidak cukup untuk melaksanakan tugas-tugas yang paling rumit diselesaikan oleh sistem BI. Sekitar 250 fungsi bahasa kueri
DAX bawaan dan bahkan lebih dari tujuh ratus fungsi Power Query memungkinkan untuk menyelesaikan hampir semua tugas BI, dari memperoleh data dari berbagai sumber, membangun model data dan mendukung visualisasi dan laporan. Tahun lalu, dukungan untuk bahasa R telah ditambahkan, yang secara dramatis memperluas kemampuan Power BI dalam hal melakukan perhitungan ilmiah, visualisasi baru, dan bahkan pembelajaran mesin.
Namun, bukan rahasia lagi bahwa saat ini pemimpin dalam lingkungan Ilmu Data di antara bahasa pemrograman adalah Python. Dan dimasukkannya bahasa ini dalam ekosistem Microsoft BI mengubah Power BI menjadi semacam pisau Swiss untuk persiapan, analisis, dan penyajian akhir data. Dengan dukungan penuh untuk empat bahasa khusus (DAX, Power Query / M, R, Python) dan terbatas, dalam fungsionalitas yang diperlukan dari SQL dan MDX. Beberapa Geeks juga mengacaukan JavaScript, tetapi ini adalah percakapan yang terpisah.
Sebagai pengembang Python yang tidak berlatih, saya dengan bersemangat menyertakan dukungan eksperimental untuk Python untuk menguji cakrawala baru yang terbuka. Saya memeriksa menu rilis PBI terbaru dan memuat ulang aplikasi. Baca lebih lanjut tentang menghubungkan dan mengkonfigurasi
di blog Microsoft .
Saya sudah menginstal versi Python sebelumnya dan saya memutuskan untuk mengambil kesempatan dan tidak repot-repot memasang yang baru. Akibatnya, konektor baru muncul di sumber data - "Pyton Script", dan ikon [
Py ] baru di panel visualisasi.
Namun, pada titik ini kode Python tidak dieksekusi. Saya tidak akan menjelaskan semua perubahan yang terkait dengan upaya menjalankan Python yang tidak dikenal di lingkungan yang saya kenal dan Power BI.
Bagaimanapun, bahkan instalasi yang bersih dari rakitan Anaconda dengan sejumlah besar perpustakaan pra-instal, manajer paket canggih, dll. Praktis tidak mendorong saya ke "gambar" yang dihargai. Versi berbeda dari Python memberikan pesan kesalahan yang berbeda untuk kode pengujian saya, dan saya sedikit berkecil hati. Pencarian Google pada posting ini juga tidak memberikan hasil yang memadai. Baru-baru ini muncul di portal, di komunitas Power BI (
https://community.powerbi.com ), permintaan oleh pengguna Denmark tentang masalah yang sama menyebabkan pemikiran yang lama - ini bukan tentang konfigurasi komputer saya dengan campuran deras perangkat lunak yang diinstal (saya memeriksa pada berbagai mobil, tetapi di mana pun mereka berada - campuran bahan peledak, hanya berbeda). Intinya adalah lokalisasi.
Ketika menjadi jelas ke arah mana harus mencari, jawaban yang lebih waras dari mesin pencari mulai menemukan pertanyaan yang disempurnakan. Tetapi intinya sama di mana-mana: “Dalam versi Power BI saat ini, Anda tidak bisa menggunakan format angka dengan titik desimal, tetapi hanya dengan titik desimal, bersama dengan Python. Tunggu versi yang diperbarui atau ubah format representasi angka. "
Di Power BI, Anda dapat mengubah format angka dalam beberapa detik melalui menu, tetapi apa yang harus dilakukan dengan banyak laporan yang sudah jadi dan sumber data? Kulit domba jelas tidak sepadan dengan usaha.
Pada titik ini, semua "ular sanca di bawah kekuasaan bi" yang terpecah belah dibagi menjadi dua kubu: Amerika dan Inggris dengan titik desimal dan sisanya. Bagian dari "sisa kapal dari versi saat ini" buru-buru menyeberang ke grup pertama, menetapkan titik sebagai pemisah standar. Sisa ponura mulai menunggu rilis terkoreksi. Tapi sejak itu Ini adalah versi beta dan terjemahan ke fungsionalitas produk mungkin memakan waktu dua bulan setengah tahun, itu pasti tidak layak menunggu koreksi dari hari ke hari.
Dan pada saat itu saya memutuskan untuk melihat lebih dekat pada pesan kesalahan:
Lebih dekat, karena kesalahan itu tidak terkait dengan kode saya, yang di
Jypyter dieksekusi hanya tanpa kesalahan dan menampilkan semua elemen visual tanpa masalah. Masalahnya disebabkan oleh kode tambahan yang telah diterapkan Microsoft untuk mengintegrasikan Python dengan Power BI. Yaitu, dengan panggilan ke perpustakaan matplotlib (
https://ru.wikipedia.org/wiki/Matplotlib ) dan secara khusus fungsi pyplot (file pyplot.py).
Tetapi untuk itu, dan perangkat lunak open source menjalankan tangan kecilnya yang lucu ke dalamnya. Tanpa berpikir dua kali, membuka kode fungsi seratus tiga puluh kilobyte di alamat yang diberikan dalam teks kesalahan, saya menemukan bahwa kegagalan terjadi ketika figManager diinisialisasi.
Di kode sumber pustaka, kode Python ini terlihat seperti ini:
figManager = new_figure_manager(num, figsize=figsize, dpi=dpi, facecolor=facecolor, edgecolor=edgecolor, frameon=frameon, FigureClass=FigureClass, **kwargs)
Menghormati pustaka penting seperti itu, saya hanya berkomentar kode untuk memanggil parameter masalah
figsize , yang Microsoft melewati empat argumen dari Poiwer BI bukannya dua dalam versi lokal, dan melewati ukuran visualisasi standar untuk parameter ini.
Sekarang kode ini terlihat seperti ini:
figManager = new_figure_manager(num, figsize=rcParams['figure.figsize'],
Dalam perakitan Anaconda saat ini, ini adalah 542-549 garis. Jika Anda memiliki versi perpustakaan yang berbeda, cari saja entri “figManager” dan buat perubahan yang diperlukan dan simpan perpustakaan yang diperbaiki dengan nama yang sama (untuk ini Anda akan memerlukan hak administrator).
Setelah itu, cukup restart kode visualisasi untuk dieksekusi dan nikmati hasilnya ... Ya, atau tunggu sampai gunung datang ke Mohammed, atau lebih tepatnya Microsoft ke Python.
Yuri Kolmakov (
McCow )