R memiliki banyak perpustakaan yang ditujukan untuk Analisis Data (misalnya JAGS, BUGS, ARULES dll.), Dan disebutkan dalam buku teks populer seperti: J.Krusche, Melakukan Analisis Data Bayesian; B.Lantz, "Pembelajaran Mesin dengan R".
Saya telah melihat pedoman 5TB untuk dataset yang dianggap sebagai Big Data.
Pertanyaan saya adalah: Apakah R cocok untuk jumlah Data yang biasanya terlihat pada masalah Big Data? Apakah ada strategi yang digunakan ketika menggunakan R dengan ukuran dataset ini?
Jawaban:
Sebenarnya ini akan terjadi. Dalam buku R in a Nutshell bahkan ada bagian tentang menggunakan R dengan Hadoop untuk pemrosesan data besar. Ada beberapa pekerjaan di sekitar yang perlu dilakukan karena R mengerjakan semua itu dalam memori, jadi Anda pada dasarnya terbatas pada jumlah RAM yang tersedia untuk Anda.
Proyek matang untuk R dan Hadoop adalah RHadoop
RHadoop telah dibagi menjadi beberapa sub proyek, rhdfs, rhbase, rmr2, plyrmr, dan quickcheck ( wiki ).
sumber
Masalah utama dengan menggunakan R untuk set data besar adalah kendala RAM. Alasan di balik menyimpan semua data dalam RAM adalah karena menyediakan akses yang jauh lebih cepat dan manipulasi data daripada yang disimpan di HDD. Jika Anda bersedia untuk mengambil hit pada kinerja, maka ya, itu cukup praktis untuk bekerja dengan dataset besar di R .
sumber
Beberapa jawaban bagus di sini. Saya ingin bergabung dalam diskusi dengan menambahkan tiga catatan berikut :
Penekanan pertanyaan pada volume data sambil mengacu pada Big Data tentu dapat dipahami dan valid, terutama mengingat masalah pertumbuhan volume data yang melebihi pertumbuhan eksponensial kapasitas teknologi per Hukum Moore ( http://en.wikipedia.org/wiki/Moore % 27s_law ).
Karena itu, penting untuk diingat tentang aspek-aspek lain dari konsep big data. Berdasarkan definisi Gartner (penekanan pada tambang - AB): " Data besar adalah volume tinggi , kecepatan tinggi , dan / atau aset informasi bervariatif tinggi yang memerlukan bentuk pemrosesan baru untuk memungkinkan pengambilan keputusan yang ditingkatkan, penemuan wawasan, dan optimalisasi proses." (biasanya disebut sebagai " model 3Vs "). Saya menyebutkan ini, karena memaksa para ilmuwan data dan analis lain untuk mencari dan menggunakan paket R yang berfokus pada selain aspek volume data besar (dimungkinkan oleh kekayaan ekosistem R yang sangat besar ).
Sementara jawaban yang ada menyebutkan beberapa paket R, terkait dengan data besar, untuk cakupan yang lebih komprehensif , saya akan merekomendasikan untuk merujuk pada CRAN Task View "Kinerja Tinggi dan Komputasi Paralel dengan R" ( http: //cran.r-project. org / web / views / HighPerformanceComputing.html ), khususnya, bagian "Komputasi paralel: Hadoop" dan "Memori besar dan data di luar memori" .
sumber
R bagus untuk "data besar"! Namun, Anda memerlukan alur kerja karena R terbatas (dengan sedikit penyederhanaan) dengan jumlah RAM di sistem operasi. Pendekatan yang saya ambil adalah berinteraksi dengan database relasional (lihat
RSQLite
paket untuk membuat dan berinteraksi dengan database SQLite), jalankan query gaya-SQL untuk memahami struktur data, dan kemudian ekstrak himpunan bagian tertentu dari data untuk komputasi intensif Analisis statistik.Ini hanya satu pendekatan, namun: ada paket yang memungkinkan Anda untuk berinteraksi dengan database lain (misalnya, Monet) atau menjalankan analisis dalam R dengan keterbatasan memori yang lebih sedikit (misalnya, lihat
pbdR
).sumber
Mempertimbangkan kriteria lain, saya pikir dalam beberapa kasus menggunakan Python mungkin jauh lebih unggul daripada R untuk Big Data. Saya tahu luasnya penggunaan R dalam materi pendidikan sains data dan perpustakaan analisis data yang baik tersedia untuk itu, tetapi kadang-kadang hanya bergantung pada tim.
Dalam pengalaman saya, bagi orang yang sudah terbiasa dengan pemrograman, menggunakan Python memberikan lebih banyak fleksibilitas dan dorongan produktivitas dibandingkan dengan bahasa seperti R, yang tidak dirancang dengan baik dan kuat dibandingkan dengan Python dalam hal bahasa pemrograman. Sebagai bukti, dalam kursus penambangan data di universitas saya, tugas akhir terbaik ditulis dengan Python, meskipun yang lain memiliki akses ke perpustakaan analisis data R yang kaya. Artinya, kadang-kadang produktivitas keseluruhan (mempertimbangkan bahan pembelajaran, dokumentasi, dll.) Untuk Python mungkin lebih baik daripada R bahkan dalam kurangnya perpustakaan analisis data tujuan khusus untuk Python. Juga, ada beberapa artikel bagus yang menjelaskan kecepatan cepat Python dalam ilmu data: Python Displacing R dan Rich Scientific Data Structures in Python yang mungkin segera mengisi celah perpustakaan yang tersedia untuk R.
Alasan penting lainnya untuk tidak menggunakan R adalah ketika bekerja dengan masalah Big Data dunia nyata, bertentangan dengan masalah akademis saja, ada banyak kebutuhan untuk alat dan teknik lain, seperti penguraian data, pembersihan, visualisasi, scrapping web, dan banyak lainnya yang jauh lebih mudah menggunakan bahasa pemrograman tujuan umum. Ini mungkin mengapa bahasa default yang digunakan dalam banyak kursus Hadoop (termasuk kursus online Udacity ) adalah Python.
Sunting:
Baru-baru ini DARPA juga menginvestasikan $ 3 juta untuk membantu mendanai pemrosesan data dan kemampuan visualisasi Python untuk pekerjaan big data, yang jelas merupakan tanda masa depan Python dalam Big Data. ( detail )
sumber
reshape2
,,plyr
dan sekarangdplyr
) dan saya tidak berpikir Anda bisa melakukan lebih baik daripadaggplot2
/ggvis
untuk visualisasiR sangat bagus untuk banyak analisis. Seperti disebutkan sebelumnya, ada adaptasi yang lebih baru untuk data besar seperti MapR, RHadoop, dan versi RStudio yang dapat diskalakan.
Namun, jika kekhawatiran Anda adalah perpustakaan, perhatikan Spark. Spark dibuat untuk data besar dan JAUH lebih cepat daripada Hadoop saja. Ini memiliki pembelajaran mesin, SQL, streaming, dan pustaka grafik yang berkembang pesat. Dengan demikian memungkinkan banyak jika tidak semua analisis dilakukan dalam kerangka kerja (dengan beberapa API bahasa, saya lebih suka Scala) tanpa harus mengacak antara bahasa / alat.
sumber
Seperti jawaban lain telah dicatat, R dapat digunakan bersama dengan Hadoop dan platform komputasi terdistribusi lainnya untuk meningkatkannya ke tingkat "Big Data". Namun, jika Anda tidak terikat dengan R secara khusus, tetapi bersedia untuk menggunakan lingkungan "seperti-R", Incanter adalah proyek yang mungkin bekerja dengan baik untuk Anda, karena itu asli untuk JVM (berdasarkan Clojure) dan tidak tidak memiliki "ketidakcocokan impedansi" antara dirinya dan Hadop yang dimiliki R. Dengan kata lain, dari Incanter, Anda dapat memanggil API Hadoop / HDFS asli Java tanpa harus melalui jembatan JNI atau apa pun.
sumber
Saya jauh dari ahli, tetapi pemahaman saya tentang subjek memberitahu saya bahwa R (hebat dalam statistik) dan misalnya Python (hebat dalam beberapa hal di mana R kurang) saling melengkapi dengan baik (seperti yang ditunjukkan oleh posting sebelumnya) .
sumber
Saya pikir sebenarnya ada sejumlah alat untuk bekerja dengan data besar di R. sparklyr akan menjadi pemain hebat di bidang itu. sparklyr adalah antarmuka R ke Apache Spark dan memungkinkan koneksi dengan kluster lokal dan jarak jauh, memberikan back-end dplyr. Anda juga bisa mengandalkan perpustakaan pembelajaran mesin Apache Spark. Selanjutnya pemrosesan paralel dimungkinkan dengan beberapa paket seperti rmpi dan salju (dikendalikan pengguna) atau doMC / foreach (berbasis sistem).
sumber