をロードする前に、私は強いリアルサーバマシンに効率的にロードする多くの大規模なJSONファイル(3Gそれぞれを)持っている、しかし、すべてのファイルからすべてのレコードをロードすると冗長と排出されます(50Mレコードは40を掛けます) 。だから私はそれが効率的だと聞いたので、jsonliteパッケージを使用すると思った。事は、私はすべてのレコードを必要とするが、名前によって埋め込まれた要素(「ソース」)は、既存のフィールドを持つレコードのサブセットのみ「継続」していないということです。 これは現在のところ私のコードです:R jsonliteフィルタレコード
library(jsonlite)
library(curl)
url <- "https://s3-eu-west-1.amazonaws.com/es-export-data/logstash-2016.02.15.json"
test <- stream_in(url(url))
多くのうち1つの抽出物です。現在、jsonliteパッケージには、埋め込み要素を平坦化して1つの幅のフラットなデータフレームを作成するための「フラット化」機能があります。その後、私はそれをフィルタリングすることができます。しかし、それは効率的ではないようです。私は、データがロードされたときにプレフィルターをかけることがはるかに効率的だと思います。 ここで一つのレコードのdput:
> dput(test_data)
"{\"_index\":\"logstash-2016.02.15\",\"_type\":\"productLogs\",\"_id\":\"AVLitaOtp4oNFTVKv9tZ\",\"_score\":0,\"_source\":{\"EntryType\":\"Event\",\"queryType\":\"clientQuery\",\"status\":\"success\",\"cubeName\":\"Hourly Targets Operations by Model\",\"cubeID\":\"aHourlyIAAaTargetsIAAaOperationsIAAabyIAAaModel\",\"startQueryTimeStamp\":\"2016-02-15T02:14:23+00:00\",\"endQueryTimeStamp\":\"2016-02-15T02:14:23+00:00\",\"queryResponeLengthBytes\":0,\"duration\":0,\"concurrentQuery\":14,\"action\":\"finishQueryJaql\",\"@timestamp\":\"2016-02-15T02:14:23.253Z\",\"appTypeName\":\"dataserver\",\"@version\":\"1\",\"host\":\"VDED12270\",\"type\":\"productLogs\",\"tags\":[],\"send_type\":\"PullGen1\",\"sisenseuid\":\"[email protected]\",\"sisenseOwnerid\":\"[email protected]\",\"sisenseVersion\":\" 5.8.1.29\",\"sisenseMonitoringVersion\":\"3.0.0.6\",\"inputType\":\"sqs\",\"token\":\"fTdyoSwaFZTalBlnFIlTsqvvzfKZVGle\",\"logstash_host\":\"vpc_cluster_1\"}}"
>
任意のヘルプは
ハンドラは、両方の行をサブセット行うことができますし、列のサブセット?もしそうなら、それをどうやってお勧めしますか? –