Я хочу прочитать мой xml в dataframe в r. Мой intial Datafile составляет 14 Гб, так моя первая попытка прочитать файл не получилось:Прочитать большой xml в Dataframe r
f=xmlParse("Final.xml")
df=xmlToDataFrame(f)
r=xmlRoot(f)
Проблема заключается в том, что она всегда уходит из памяти ....
Я также видел вопрос:
How to read large (~20 GB) xml file in R?
Я пытался использовать подход от Мартина Моргана, который я сделал не 100% понял, но попытался применить к моему набору данных.
libary(XML)
branchFunction <- function() {
store <- new.env()
func <- function(x, ...) {
ns <- getNodeSet(x, path = "//Sentiment")
value <- xmlValue(ns[[1]])
print(value)
# if storing something ...
# store[[some_key]] <- some_value
}
getStore <- function() { as.List(store) }
list(ROW = func, getStore=getStore)
}
myfunctions <- branchFunction()
xmlEventParse(
file = "Inputfile.xml",
handlers = NULL,
branches = myfunctions
))
myfunctions$getStore()
Я бы сделать это для каждого столбца в отдельности и структуры я получаю от ouptput не является полезным.
Структура из моих данных выглядит следующим образом:
<ROWSET>
<ROW>
<Field1>21706</Field1>
<PostId>19203</PostId>
<ThreadId>38</ThreadId>
<UserId>1397</UserId>
<TimeStamp>1407351854</TimeStamp>
<Upvotes>0</Upvotes>
<Downvotes>0</Downvotes>
<Flagged>f</Flagged>
<Approved>t</Approved>
<Deleted>f</Deleted>
<Replies>0</Replies>
<ReplyTo>egergeg</ReplyTo>
<Content>dsfg</Content>
<Sentiment>Neutral</Sentiment>
</ROW>
<ROW>
<Field1>217</Field1>
<PostId>1903</PostId>
<ThreadId>8</ThreadId>
<UserId>197</UserId>
<TimeStamp>1407351854</TimeStamp>
<Upvotes>0</Upvotes>
<Downvotes>0</Downvotes>
<Flagged>f</Flagged>
<Approved>t</Approved>
<Deleted>f</Deleted>
<Replies>0</Replies>
<ReplyTo>sdrwer</ReplyTo>
<Content>wer</Content>
<Sentiment>Neutral</Sentiment>
</ROW>
<ROW>
<Field1>21306</Field1>
<PostId>19103</PostId>
<ThreadId>78</ThreadId>
<UserId>13497</UserId>
<TimeStamp>1407321854</TimeStamp>
<Upvotes>0</Upvotes>
<Downvotes>0</Downvotes>
<Flagged>f</Flagged>
<Approved>t</Approved>
<Deleted>f</Deleted>
<Replies>0</Replies>
<ReplyTo>tzjtj</ReplyTo>
<Content>rtgr</Content>
<Sentiment>Neutral</Sentiment>
</ROW>
</ROWSET>
Вы должны предоставить * полный * минимальный пример вашего XML, в противном случае для других действительно сложно проверить их предлагаемое решение. – Thomas
Я расширил пример xml, кажется, что часть xml вырезана, когда я разместил ее. – Carlo