【问题标题】:IllegalArgumentException: Path must be absolute when trying to read json in databricksIllegalArgumentException:尝试读取数据块中的 json 时,路径必须是绝对的
【发布时间】:2021-11-25 14:26:00
【问题描述】:

我已经开始使用数据块,我正在使用社区云,我正在尝试读取 json 文件。 我尝试按以下方式执行此操作:

from pyspark.sql import SparkSession

df=spark.read.json('people')

但是我得到了错误:

IllegalArgumentException:路径必须是绝对的:人

我尝试使用不同的文字来访问 people.json 文件:

'people.json', '/people.json','Data/deafult/people' 等,最后一个是基于我了解的数据存储位置:

但是,这不起作用,我一直收到相同的错误消息。

Ho每当我尝试使用 sql.Context.sql 读取它时,它都会显示表格:

df=sqlContext.sql("SELECT * FROM people")
df.show()

>>>
+----+-------+
| age|   name|
+----+-------+
|null|Michael|
|  30|   Andy|
|  19| Justin|
+----+-------+

所以我的问题是如何使用 spark.read.json 打开 json 文件?

【问题讨论】:

    标签: json dataframe pyspark databricks


    【解决方案1】:
    1. 导航到“数据”->“创建表”
    2. 将 people.json 文件拖放到“文件”窗格中 (Like this)
    3. 不要单击“使用 UI 创建表”按钮,只需复制文件下方自动创建的路径即可。例如。 "/FileStore/tables/people.json"
    4. 现在您可以粘贴正确的路径并使用 read.json 命令。它看起来像这样:df = spark.read.json('/FileStore/tables/people.json')

    【讨论】:

      【解决方案2】:

      为什么要使用spark.read.json? 在你的图片中,“人”显然是一张桌子。

      如果你想在 spark 中读取表格,你可以这样做:spark.table("people")

      当你想读取一个 json 文件时,你使用spark.read.json。在这种情况下,您可以这样做:spark.read.json("absolute/path/to/json/file") 但您需要知道该路径(这正是您遇到的错误)。我不知道您的文件存储在哪里,这完全取决于您。你把它们放在哪里了?

      【讨论】:

      • 嘿,谢谢你的回答。人是表。我已经上传了它,如图所示。我已经使用“创建表”将其上传到那里
      • @Reut 好的,所以,如果它只是一个表,不需要调用 json reader ... 只需使用spark.read.table
      猜你喜欢
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2013-09-24
      • 2015-01-14
      相关资源
      最近更新 更多