Apache spark 使用套接字触发结构化流,设置模式,在控制台中显示数据帧

Apache spark 使用套接字触发结构化流,设置模式,在控制台中显示数据帧,apache-spark,pyspark,apache-spark-sql,pyspark-sql,spark-structured-streaming,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,Spark Structured Streaming,如何在PySpark中为流数据帧设置模式 从pyspark.sql导入SparkSession 从pyspark.sql.functions导入explode 从pyspark.sql.functions导入拆分 导入数据类型 从pyspark.sql.types导入* 火花=火花会话\ 建筑商先生\ .appNameStructuredNetworkWordCount\ .getOrCreate 创建表示从连接到localhost:5560的输入行流的数据帧 线=火花\ .readStream

如何在PySpark中为流数据帧设置模式

从pyspark.sql导入SparkSession 从pyspark.sql.functions导入explode 从pyspark.sql.functions导入拆分 导入数据类型 从pyspark.sql.types导入* 火花=火花会话\ 建筑商先生\ .appNameStructuredNetworkWordCount\ .getOrCreate 创建表示从连接到localhost:5560的输入行流的数据帧 线=火花\ .readStream\ .格式化“套接字”\ .选项“主机”,“192.168.0.113”\ .选项“端口”,5560\ 负载 例如,我需要一个如下表:

Name,  lastName,   PhoneNumber    
Bob, Dylan, 123456    
Jack, Ma, 789456
....
如何将标题/架构设置为['Name'、'lastName'、'PhoneNumber'] 使用它们的数据类型

另外,是否可以连续显示此表,或者说数据帧的前20行。当我尝试它时,我得到了错误

pyspark.sql.utils.AnalysisException:“当流数据帧/数据集上没有流聚合时,不支持完整输出模式;”\N项目

TextSocketSource不提供任何集成的解析选项。只能使用以下两种格式之一:

时间戳和文本(如果includeTimestamp在以下架构中设置为true):

结构类型[ StructFieldvalue,StringType, StructFieldtimestamp,TimestampType ] 仅当includeTimestamp设置为false且架构如下所示时才显示文本:

StructType[StructFieldvalue,StringType] 如果要更改此格式,必须转换流以提取感兴趣的字段,例如使用正则表达式:

从pyspark.sql.functions导入regexp\u extract 从functools导入部分 字段=部分 regexp\u extract,str=value,pattern=^\w*\s*,\s*\w*\s*,\s*[0-9]*$ 行。选择 fieldsidx=1.1别名, fieldsidx=2.0姓氏, fieldsidx=3.0电话号码