当前位置: 首页 > 知识库问答 >
问题:

在Pyspark中将DataFrame写入TextFile

陶福
2023-03-14

我正在尝试使用以下代码将数据帧“df2”保存到文本文件中

代码:df2。写格式(“文本”)。模式(“覆盖”)。保存(“/tmp/hive/save\u text”)

错误:

Py4JJavaError Traceback(最近一次调用) /databricks/spark/python/pyspark/sql/utils.py在deco(*a,**kw)62 try:---

/databricks/spark/python/lib/py4j-0.10.7-src。zip/py4j/协议。py in get\u return\u value(answer,gateway\u client,target\u id,name)327“调用{0}{1}{2}时出错。\n”--

Py4JJavaError:调用o1239时出错。保存:组织。阿帕奇。火花sql。AnalysisException:文本数据源不支持int数据类型。;

**提问:请建议如何将数据框中的数据写入文本文件**

共有1个答案

张腾
2023-03-14

请注意,为了使用write。格式化('text'),您的数据框必须只有一列,否则将引发错误。因此,您需要将所有列转换为单个列。

或者,您可以使用write。格式化('csv'),或者您可以将其转换为RDD并将其保存为文本文件。

例如,您的数据框架包含两列,即。id,name(id是int,name是string),您想在输出文件中写入id,name。为此,编写代码如下:

df2.rdd.map(lambda x : str(x[0]) + "," + x[1]).saveAsTextFile('/tmp/hive/save_text')
 类似资料:
  • 问题内容: 我跟随本文将一些数据发送到AWS ES,并使用了jar elasticsearch-hadoop。这是我的脚本: 然后运行以下命令行: 其中write_to_es.py是上面的脚本。 这是我得到的错误: 如何解决这个问题: 任何帮助或建议,我们将不胜感激。 问题答案: 我有同样的问题。 看完这篇文章,我找到了答案!!! 您必须像这样转换为Type:

  • 我正在运行一个由Kafka、Spark和Cassandra组成的1节点集群。全部本地在同一台机器上。 从一个简单的Python脚本中,我每5秒将一些虚拟数据流到一个Kafka主题中。然后使用Spark结构化流,我将这个数据流(一次一行)读入PySpark DataFrame中,并使用=。最后,我尝试将此行追加到一个已经存在的Cassandra表中。 我一直在关注(如何向Cassandra编写流数据

  • 问题内容: 有 DataFrame.to_sql 方法,但仅适用于mysql,sqlite和oracle数据库。我无法传递给此方法postgres连接或sqlalchemy引擎。 问题答案: 从pandas 0.14(2014年5月发行)开始,支持postgresql。该模块现在用于支持不同的数据库风格。您可以为PostgreSQL数据库传递sqlalchemy引擎(请参阅docs)。例如: 您是

  • 我试图将写入并关注了其他几个博客,其中一个就是这个,但它不起作用。 但是,我可以成功地从读取数据为。此外,一些帖子使用了格式,其他帖子使用了格式。我不确定该用哪一个。;;和从这里开始。 守则如下: 这里有个例外: 在org.apache.hadoop.hbase.security.userprovider.instantiate(userprovider.java:122)在org.apache.

  • 如何将数据帧的索引写入自身? 例如: 我想写一个名为index的列,其中包含df的索引值:

  • 问题内容: 我有一个pandas数据框,我想将其写入CSV文件。我正在使用以下方法: 并得到错误: 有什么方法可以轻松解决此问题(即我的数据框中有Unicode字符)吗?有没有一种方法可以使用例如“ to-tab”方法(我认为不存在)写入制表符分隔文件而不是CSV? 问题答案: 要用制表符分隔,可以使用参数: 要使用特定的编码(例如),请使用参数: