Я создал кадр данных pandas из некоторых сообщений StackOverFlow. Используется lxml.eTree для разделения кода_блоков и текстовых блоков. Приведенный ниже код показывает основную схему:Ошибка при преобразовании кадра данных pandas в искривление DataFrame
import lxml.etree
a1 = tokensentRDD.map(lambda (a,b): (a,''.join(map(str,b))))
a2 = a1.map(lambda (a,b): (a, b.replace("<", "<")))
a3 = a2.map(lambda (a,b): (a, b.replace(">", ">")))
def parsefunc (x):
html = lxml.etree.HTML(x)
code_block = html.xpath('//code/text()')
text_block = html.xpath('// /text()')
a4 = code_block
a5 = len(code_block)
a6 = text_block
a7 = len(text_block)
a8 = ''.join(map(str,text_block)).split(' ')
a9 = len(a8)
a10 = nltk.word_tokenize(''.join(map(str,text_block)))
numOfI = 0
numOfQue = 0
numOfExclam = 0
for x in a10:
if x == 'I':
numOfI +=1
elif x == '?':
numOfQue +=1
elif x == '!':
numOfExclam
return (a4,a5,a6,a7,a9,numOfI,numOfQue, numOfExclam)
a11 = a3.take(6)
a12 = map(lambda (a,b): (a, parsefunc(b)), a11)
columns = ['code_block', 'len_code', 'text_block', 'len_text', '[email protected]_block', 'numOfI', 'numOfQ', 'numOfExclam']
index = map(lambda x:x[0], a12)
data = map(lambda x:x[1], a12)
df = pd.DataFrame(data = data, columns = columns, index = index)
df.index.name = 'Id'
df
code_block len_code text_block len_text [email protected]_block numOfI numOfQ numOfExclam
Id
4 [decimal 3 [I want to use a track-bar to change a form's ... 18 72 5 1 0
6 [div, ] 5 [I have an absolutely positioned , div, conta... 22 96 4 4 0
9 [DateTime] 1 [Given a , DateTime, representing a person's ... 4 21 2 2 0
11 [DateTime] 1 [Given a specific , DateTime, value, how do I... 12 24 2 1 0
Мне нужно создать искру DataFrame на заказ для применения алгоритмов машинного обучения на выходе. Я пробовал:
sqlContext.createDataFrame(df).show()
Ошибки я получаю это:
TypeError: not supported type: <class 'lxml.etree._ElementStringResult'>
Может кто-нибудь сказать мне правильный способ, чтобы преобразовать панда DataFrame в искре DataFrame?
Вы опустили самую важную часть кода ('return (list of variables)'). – zero323
Извините, где я должен включить его? –
Просто [отредактируйте вопрос] (https://stackoverflow.com/posts/35182717/edit), поэтому ясно, что возвращается из функции. Пример ввода также полезен. – zero323