【问题标题】:pyspark - creating dataframes using sqlCtx.load() from CSV filepyspark - 使用 CSV 文件中的 sqlCtx.load() 创建数据帧
【发布时间】:2016-10-25 12:31:24
【问题描述】:

在 pyspark 中创建数据框时出现错误。请让我知道如何解决它。我正在通过 Coursera 学习 pyspark 命令。

以下是我使用的命令:

PYSPARK_DRIVER_PYTHON=ipython pyspark -- 包 com.databricks:spark-csv_2.10:1.4.0

这似乎工作正常。

一旦在shell中,当我尝试时:

yelp_df = sqlCtx.load(source = "com.databricks.spark.csv",
               header = 'true',
               inferSchema = 'true',
               path ='file:///usr/lib/hue/apps/search/examples/collections/solr_configs_yelp_demo/index_data.csv')

我收到以下错误:

Py4JJavaError Traceback(最近一次调用最后一次)

在 ()

3 标题 = 'true',

4 inferSchema = 'true',

----> 5 路径 = 'file:///usr/lib/hue/apps/search/examples/collections/solr_configs_yelp_demo/index_data.csv')

/usr/lib/spark/python/pyspark/sql/context.py in load(self, path, source, schema, **options)

480 self._sc._gateway._gateway_client)

如果架构为无,则为 481:

--> 482 df = self._ssql_ctx.load(source, joptions)

483 其他:

484 if not isinstance(schema, StructType):

/usr/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py in 调用(self, *args)

536 答案 = self.gateway_client.send_command(command)

537 return_value = get_return_value(answer, self.gateway_client,

--> 538 self.target_id, self.name)

【问题讨论】:

  • 您的回溯日志似乎不完整,最后的错误是什么?
  • 转储太长。我在这里添加更多内容:整个转储在这里——temp_args 中的 temp_arg 为 539 540:/usr/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py in get_return_value( answer, gateway_client, target_id, name) 298 raise Py4JJavaError( 299 '调用 {0}{1}{2}.\n'.-> 300 格式(target_id, '.', name), value) 301 其他:302 引发 Py4JError(
  • 我猜错误列表的主要部分是:Py4JJavaError: An error occurred while calling o19.load。 :java.lang.RuntimeException:无法加载数据源的类:com.databricks.spark.csv at scala.sys.package$.error(package.scala:27​​) at tCommand.invokeMethod(AbstractCommand.jav

标签: python csv pyspark


【解决方案1】:

将其加载为文本文件,根据您的分隔符''拆分,然后转换为数据框。以 sc 为您的 spark 上下文,

sc.textFile('file:///usr/lib/hue/apps/search/examples/collections/solr_configs_yelp_demo/index_data.csv').map(lambda row:row.split(',')).toDF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多