【问题标题】:Access a table in Databricks whose column name is numeric访问 Databricks 中列名为数字的表
【发布时间】:2020-10-08 09:33:41
【问题描述】:

我有一个没有标题的文件。

所以反过来,我创建的数据框有默认标题 (0,1,2,3)

例如下面的数据框: df = pd.DataFrame(np.random.randint(0,100,size=(15, 4)))

然后我将这个 pandas df 转换为 spark one: spdf = spark.createDataFrame(df)

所以这个数据框也有相同的列名(0,1,2,3)

在此之后,我正在使用创建表(编写 df) spdf.write.saveAsTable('default.testX')

现在这个表,testX 有标题 0,1,2,3 如Describe testX所示

但是当我在做Select 1 from testX 我无法访问该列,而是为我拥有的行数打印“1”。

我如何告诉系统我正在尝试访问这些列。

【问题讨论】:

  • 欢迎来到 Stackoverflow。请您添加可以调试的可行代码。也许将其全部添加为 sn-p 它在您的答案下/

标签: python pandas apache-spark-sql azure-databricks


【解决方案1】:

找到答案了,

   select `0`, `1` from testx  

这是用`符号包装列

【讨论】:

    【解决方案2】:
    df = pd.DataFrame(np.random.randint(0,100,size=(15, 4)),columns =[ 'col1', 'col2','col3', 'col4'])
    spdf = spark.createDataFrame(df)
    spdf.show()
    

    使用列名来获取你需要的数据

    【讨论】:

    • 我知道,在创建时我可以添加列名。但是这个随机生成的 DF 就是一个例子。我将拥有包含 Unknown number of columns 的文件。那我该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    相关资源
    最近更新 更多