conf = SparkConf().setAppName("PySpark").setMaster("local")
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
file = sqlContext.read.json(json_file_path)
file.show()
Выводы:
+--------------------+--------------------+
| data| schema|
+--------------------+--------------------+
|[[The battery is ...|[[[index, integer...|
+--------------------+--------------------+
Как мне извлечь данные, используя мою собственную созданную схему. Мой код схемы:
from pyspark.sql.types import ArrayType, StructField, StructType, StringType, IntegerType
schema = StructType([
StructField('index', IntegerType(), True),
StructField('content', StringType(), True),
StructField('label', IntegerType(), True),
StructField('label_1', StringType(), True ),
StructField('label_2', StringType(), True ),
StructField('label_3', IntegerType(), True ),
StructField('label_4', IntegerType(), True )])
Я пробовал:
file.withColumn("data", from_json("data", schema))\
.show()
Но я получаю следующую ошибку:
cannot resolve 'from_json(`data`)' due to data type mismatch: argument 1 requires string type, however, '`data`' is of array<struct<content:string,index:bigint,label:bigint,label_1:string,label_2:string,label_3:double,label_4:timestamp>> type.;;