質問

この投稿を読みました R言語はビッグデータに適しています そのビッグデータは構成されています 5TB, 、そして、このタイプのデータを操作することの実現可能性に関する情報を提供するのは良い仕事をしていますが R それはほとんど情報を提供しません Python. 。私は疑問に思っていました Python この多くのデータも同様に動作できます。

役に立ちましたか?

解決

明確にするために、私はOPによる元の質問参照がおそらくSO-Type形式に最適ではないと感じていますが、私は確かに表現します python この特定の場合。

あなたのデータサイズに関係なく、それを言うことから始めましょう、 python あなたの制限要因であってはなりません。実際、大規模なデータセットを扱うことに遭遇する主な問題はいくつかあります。

  • メモリにデータを読み取ります - これは、ビッグデータの世界で直面する最も一般的な問題です。基本的に、メモリ(RAM)があるよりも多くのデータを読むことはできません。これを修正する最良の方法は、一度にすべてを読み取ろうとするのではなく、データにアトミック操作を行うことです。
  • データの保存 - これは実際には以前の問題の別の形式です。 1TB, 、あなたは他の場所をストレージのために探し始めます。 AWS S3は最も一般的なリソースです python 素晴らしいです boto 大きなデータでリードを促進するライブラリ。
  • ネットワーク遅延 - 異なるサービス間でデータを移動すると、ボトルネックになります。共同住宅のリソースを選択して壁に接続しようとする以外に、これを修正するためにできる膨大な量はありません。

他のヒント

ビッグデータを扱う際に理解する必要があることがいくつかあります -

ビッグデータとは何ですか?

ビッグデータの有名なV(ボリューム、速度、多様性)に注意するかもしれません。したがって、Pythonはすべてに適していない場合があります。そして、利用可能なすべてのデータサイエンスツールに合わせています。どのツールがどのような目的に適しているかを知る必要があります。

大量のデータを扱う場合:

  • 豚/ハイブ/サメ - データクリーニングとETLワーク
  • Hadoop/Spark-分散並列コンピューティング
  • mahout/ml -lib-機械学習

これで、中間段階でR/Pythonを使用できますが、プロセス全体でボトルネックになることがわかります。

データの速度を扱う場合:

  • Kafka/Storm-ハイスループットシステム

人々はここでr/pythonを試みていますが、繰り返しますが、それはあなたが望む一種の並列性とあなたのモデルの複雑さに依存します。

どんな分析をしたいですか?

モデルがデータ全体を最初にメモリにするよう要求する場合、中間データが大きい場合、コードが破損するため、モデルが複雑ではないはずです。また、ディスクに書き込むことを考えると、DISKの読み取り/書き込みがRAMと比較して遅いため、追加の遅延に直面します。

結論

ビッグデータスペースでPythonを間違いなく使用できます(間違いなく、人々はRで試しているので、Pythonではないのはなぜですか)が、最初にデータとビジネスの要件を知っています。より良いツールが同じで利用できる場合があり、常に覚えておいてください。

あなたのツールは、あなたが質問にどのように答えるかを決定するべきではありません。あなたの質問は、あなたが使用するツールを決定する必要があります。

Pythonには、ビッグデータを操作するための非常に優れたツールがあります。

numpy

NumpyのMemmory-Mappedアレイでは、アレイであるかのようにディスクに保存されたファイルにアクセスできます。積極的に作業している配列の部分のみが、メモリにロードする必要があります。通常の配列とほぼ同じ使用できます。

H5pyおよびpytables

これらの2つのライブラリは、HDF5ファイルへのアクセスを提供します。これらのファイルにより、データの一部にアクセスできます。さらに、データへのアクセスに使用される基礎となるライブラリのおかげで、データの多くの数学操作やその他の操作をPythonデータ構造にロードせずに実行できます。大規模で高度に構造化されたファイルが可能であり、5 TBよりもはるかに大きくなります。また、シームレスでロスレス圧縮を可能にします。

データベース

ビッグデータセットを保存し、必要な部品のみをロードできるさまざまな種類のデータベースがあります。多くのデータベースを使用すると、データをPythonデータ構造にまったくロードせずに操作を行うことができます。

パンダ

これにより、HDF5データ、CSVファイル、データベース、さらにはWebサイトなど、さまざまな種類のデータへの高レベルのアクセスが可能になります。ビッグデータの場合、HDF5ファイルアクセスの周りのラッパーを提供し、ビッグデータセットで分析を簡単に実行できます。

mpi4py

これは、複数のプロセッサまたは複数のコンピューターで分散した方法でPythonコードを実行するためのツールです。これにより、データの一部で同時に作業できます。

ダスク

これは、メモリに収まるには大きすぎるデータで動作できるマルチコアの方法で通常のnumpy操作の多くをサポートする通常のnumpyアレイのバージョンを提供します。

ビッグデータ向けに特別に設計されたツール。これは基本的に上記のライブラリの周りのラッパーであり、大量のデータ(HDF5やデータベースなど)を保存するさまざまな方法に一貫したインターフェイスを提供し、ツールを操作し、数学的操作を実行し、数学的操作を行い、データを分析するツールを提供します。メモリに収まるには大きすぎます。

絶対。そのスケールでデータを使用している場合、ビッグデータフレームワークを使用することが一般的です。この場合、Pythonまたは使用している言語は単なるインターフェイスです。たとえば、参照してください Spark's Pythonプログラミングガイド. 。どんなデータがあり、それをどうしたいですか?

このような量のデータを処理するために、プログラミング言語が主な関心事ではありませんが、プログラミングフレームワークはそうです。 MapReduceやSparkなどのフレームワークには、Pythonを含む多くの言語にバインディングがあります。これらのフレームワークには、確かにデータ分析タスクのための多くのすぐに使用できるパッケージがあります。しかし、最終的にはすべてあなたの要件に至ります。つまり、あなたの仕事は何ですか?人々はデータ分析タスクのさまざまな定義を持っていますが、それらのいくつかはリレーショナルデータベースで簡単に解決できます。その場合、SQLは他のすべての選択肢よりもはるかに優れています。

言語自体は、大きなデータに関しては、パフォーマンス機能とはほとんど関係がないと思います。重要なのは:

  • 実際にデータの大きさ
  • どのような処理を実行しますか
  • どのハードウェアを使用しますか
  • 使用する予定の特定のライブラリはどれですか

とにかく、Pythonはデータサイエンスコミュニティでよく採用されています。

Anaconda Python 3.4とPandasを使用して、10mの行データベースを検索して、20kのログイン資格情報に一致しています。約1分かかります。パンダの内部は、メモリを非常に利用しています。とはいえ、真のビッグデータには、問題に一致する処理アーキテクチャが必要です。パンダはこの方程式の接着剤(ロジック)であり、他のツールもこれを行うことができます。 R、Scala、Haskell、SASなど。ロジックの一部を複製できます。おそらく、質問に早く答えるのに十分です。しかし、Pythonは優れた(最高?)汎用ツールを作成します。 Pythonだけでなく、PythonでRコードを実行できます。解釈的ではありますが、Pythonをベンチマークツールとほぼ同じ努力しか動作させることができるPypyなどの高性能技術やツールがあります。 Pythonには、ほぼすべてを行う多くのライブラリがあります。上記のリストを参照してください。

Pythonを学習して使用する必要があるかどうかを尋ねている場合、私の答えは、Pythonが両方を使用している人の間でRよりも多く使用されていることを示しています。しかし、単一のツールによって解決されるデータサイエンスの問題はほとんどありません。それはあなたの頼りになるツールになるかもしれませんが、それだけ - ツールです。そして、正気な人がハンマーだけで家を建てるのと同じように、正気のデータ科学者は1つのツールだけを使用していません。

人々がビッグデータとデータサイエンスやビジネスインテリジェンスをどのように混ぜるかは面白いです。

第一に、ビッグデータは「多くのデータ」を意味するため、従来のデータベースに収まらない非常に多くの情報です。ただし、ビッグデータは適切な「価値」情報ではなく、ドキュメント、画像などでもあります。

したがって、ビッグデータを処理するには、速度が必要です。 Pythonはリーグから外れているので、R。ただし、タスクがCSVを取得してデータベースに挿入するのと同じくらい簡単な場合、それはETLです。それを行うにはプログラミングは必要ありません。

情報が削減されたら、Python、R、または必要なものを適用できます。エクセルさえ。ただし、この段階では、ビッグデータはもはや大きなものではなく、従来のデータです。

IMHO、Javaはビッグデータ(チェーン全体)により適していますが、人々はPythonをいくつかの非実用的な理由でデフォルトとして採用しています。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top