Работя понастоящем по проект, който да се заредиразпечатване в кошницата. Но поради неструктурирания формат на текстовия файл, трябваше първо да го обработя в структуриран файл, в този случай да го преобразувам в csv, което го прави разделен със запетаи.
Успях да разделям колоните както следва.
Това е текстовият файл, с който работя.
Опитвам се да направя маркираната част като една колона. Поради конфигурирането на разделянето чрез пространство във файловия вход, тя раздели tweets. Има ли някакъв начин да се реши това?
Отговори:
0 за отговор № 1Вашият файл е много трудно да се анализира, тъй като вашиятразделител (интервал) също присъства във вашите данни. Ако е възможно, най-добре е да го оправите при източника. Но тъй като това не винаги е осъществимо, ето какво мога да измисля:
Идеята е да въведете нов ред (или нещо друго)друг (и) символ (и), които вече не присъстват във вашите данни) пред всяка дата във вашия текст (тъй като това е най-уникалният модел). След това го нормализирайте, като използвате новия символ (или този, който сте използвали при замяната) в a tNormalize
, така че да имате на всеки ред низ, съдържащ дата, потребителско име и писмено съобщение.
Бързият и мръсен регекс, който събрах, за да съответства на датата, е:
(\w{3}\s\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}\s\w{3}\s\d{4})
И заменете с връщане на карета, последвано от съответната дата: n$1
Следващия, tExtractRegexFields
използва друг регекс, за да извлече датата, потребителското име и тийта в колонката. Тук е регексът, който използвах:
(\w{3}\s\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}\s\w{3}\s\d{4}\s)\(([^\)]+)\)\s(.+)
Има 3 групи за заснемане, една за датата, една за потребителското име и последната заснема целия текст след това, което е пишенето.
В моя пример използвах този текст:
"Fri Mar 15 23:58:55 CET 2013 (iMezouar) this is the 1st tweetFri Mar 15 23:58:55 CET 2013 (username2) this is the 2nd tweetFri Mar 15 23:58:55 CET 2013 (username3) this is the 3rd tweet"
И имам:
.-----------------------------+---------+----------------------.
| tLogRow_2 |
|=----------------------------+---------+---------------------=|
|date |username |tweet |
|=----------------------------+---------+---------------------=|
|Fri Mar 15 23:58:55 CET 2013 |iMezouar |this is the 1st tweet |
|Fri Mar 15 23:58:55 CET 2013 |username2|this is the 2nd tweet |
|Fri Mar 15 23:58:55 CET 2013 |username3|this is the 3rd tweet"|
"-----------------------------+---------+----------------------"