Я пытаюсь найти определенную строку из очень большого файла журнала. Я могу искать строку.
Теперь, используя это пространство строк, я хочу создать фрейм данных, но я не могу этого сделать. Я пробовал приведенный ниже код, но не смог достичь.
from pyspark import SparkConf,SparkContext
from pyspark import SQLContext
from pyspark.sql.types import *
from pyspark.sql import *
conf=SparkConf().setMaster("local").setAppName("invparsing")
sc=SparkContext(conf=conf)
sql=SQLContext(sc)
def f(x) :print(x)
data_frame_schema=StructType([
StructField("Typeof",StringType()),
#StructField("Produt_mod",StringType()),
#StructField("Col2",StringType()),
#StructField("Col3",StringType()),
#StructField("Col4",StringType()),
#StructField("Col5",StringType()),
])
path="C:/rk/IBMS/inv.log"
lines=sc.textFile(path)
NodeStr=lines.filter(lambda x:'Node :RBS6301' in x).map(lambda x:x.split(" +"))
NodeStr.foreach(f)
Nodedf=sql.createDataFrame(NodeStr,data_frame_schema)
Nodedf.show(truncate=False)
Теперь я получаю вывод - только одна строка. O хочу разделить значение на основе пробела.
[u'Node: RBS6301 XP10521/26 R30F L17A.4-6 (C17.0_LSV_PS4)']
+-------------------------------------------------------------+
|Typesof |
+-------------------------------------------------------------+
|Node: RBS6301 XP10521/26 R30F L17A.4-6 (C17.0_LSV_PS4)
+-------------------------------------------------------------+
Ожидаемый результат:
Typeof Produt_mod Col2 Col3 Col4 COL5
Node RBS6301 XP10521/26 R30F L17A.4-6 C17.0_LSV_PS4