Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 从数据帧的每个记录创建XML请求_Apache Spark_Pyspark_Apache Kafka_Pyspark Sql_Pyspark Dataframes - Fatal编程技术网

Apache spark 从数据帧的每个记录创建XML请求

Apache spark 从数据帧的每个记录创建XML请求,apache-spark,pyspark,apache-kafka,pyspark-sql,pyspark-dataframes,Apache Spark,Pyspark,Apache Kafka,Pyspark Sql,Pyspark Dataframes,我尝试了许多选项,包括withColumn、udf、lambda、foreach、map,但没有得到预期的输出。在max,我只能转换第一条记录。inputfile.json将继续增加,expect op应该提供所需结构的xml。稍后我将制作卡夫卡的预期作品。 Spark 2.3、Python 2.7。需要的是在PySpark中完成 编辑1: 我能够在主数据框中添加一列,该列具有所需的xml。我使用了with column和函数。format_string并能够将字符串(xml结构)添加到数据帧的

我尝试了许多选项,包括withColumn、udf、lambda、foreach、map,但没有得到预期的输出。在max,我只能转换第一条记录。inputfile.json将继续增加,expect op应该提供所需结构的xml。稍后我将制作卡夫卡的预期作品。 Spark 2.3、Python 2.7。需要的是在PySpark中完成

编辑1:

我能够在主数据框中添加一列,该列具有所需的xml。我使用了
with column
函数。format_string
并能够将字符串(xml结构)添加到数据帧的列中

现在我的下一个目标是为卡夫卡创造新专栏的价值。我正在使用
df.foreachPartition(发送到卡夫卡)
并创建了如下函数:

def send_to_kafka(rows):
    kafka = SimpleClient('localhost:9092')
    producer = SimpleProducer(kafka)
    for row in rows:
        producer.send_messages('test', str(row.asDict()))
但不幸的是,它做了两件事:
A.将卡夫卡上的记录生成为
{'newColumn':u'myXMLPayload'}
。我不想那样。我只想在卡夫卡上制作
myXMLPayload

B它将u'添加到值中,以便对值进行Unicode编码

我想去掉这两部分,我很乐意去做。
如果有任何帮助,我们将不胜感激。

您为什么不使用?可能使用:
str(row.newColumn)
而不是
str(row.asDict())
@jxc get raise AttributeError(item)属性错误:newColumn@cronoikgetting:pyspark.sql.utils.AnalysisException:u“'writeStream'只能在流式数据集/数据帧上调用;@earl,要保存的
xml
的列名是什么?是不是
newColumn