我试图从JSON文件中获取Pyspark
模式,但当我使用Python代码中的变量创建模式时,我能够看到<class 'pyspark.sql.types.StructType'>
的变量类型,但当我试图通过JSON文件时,它显示unicode
的类型。
有没有办法通过JSON文件获取pyspark
模式?
JSON文件内容:
{
"tediasessionclose_schema" : "StructType([ StructField('@timestamp', StringType()), StructField('message' , StructType([ StructField('componentAddress', StringType()), StructField('values', StructType([ StructField('confNum', StringType()), StructField('day', IntegerType())])"
}
字符串
Pyspark代码:
df = sc.read.json(hdfs_path, schema = jsonfile['tediasessionclose_schema'])
型
3条答案
按热度按时间wqsoz72f1#
你可以通过计算你从json中得到的字符串来获得schema:
字符串
产出:
型
其中
test.json
是:型
希望这对你有帮助!
xu3bshqb2#
config_json文件:
字符串
PySpark应用程序:
型
参考:https://www.python-course.eu/lambda.php
型
希望这个解决方案对你有用!
twh00eeo3#
这里不需要做任何手工操作。Spark内置了一个功能,可以读取JSON字符串,推断其模式并将其转换为Struct格式。
只需将JSON数据读取到单列dataframe - df中,下面是接下来可以使用的语句:
第一个月