【问题标题】:Create DataFrame columns dynamically from meta data从元数据动态创建 DataFrame 列
【发布时间】:2020-03-23 11:05:02
【问题描述】:

我是 Python 和 Databricks 的新手。

我在文本文件中有没有列标题的数据。

'|'是此文本文件中的列值分隔符

我在单独的 Excel 文件中确实有关于列名及其顺序的详细信息。

我必须创建包含列详细信息的 DataFrame,然后我必须在其中导入数据行

请建议创建 DataFrame 列的最佳方法,我应该在哪里维护这些列的详细信息(名称、类型、顺序)

文本文件中的示例数据:-

C1|CL1|23|dsfr|54|hjhg|nnf|hb
C1|CL2|23|dsfe|344|er|nnf||fg
C1|CL3|23|dsef|364|e|nnf|fg
C2|CL1a|2783|d56sfr|54|hjhg|nbvc|hb
C2|CL2a|253|dsf56e|344|er|hjhgf||fyyg
C2|CL3a|2673|dse56f|364|e|tre|ttt|yy

标题详细信息:-

Col1(string)
Col2(string)
Col3(number)
..
..

请注意,实际上,我确实有超过 300 列包含字符串、数字、日期时间、布尔类型的列

【问题讨论】:

  • 你也应该提供示例数据行和excel文件。
  • 在创建数据框列之前我应该​​在哪里存储列标题详细信息
  • 您使用的是databricks,您是通过pandas 还是Pyspark 读取文件?正如 Dishin 所说,您可以发布标头的原始详细信息吗?在 PySpark 中,您可以在声明数据框之前传入 Schema。
  • 我正在使用 Azure Databricks。我的没有列标题的数据文件将进入 Azure 存储。我创建了一个 Azure 数据工厂来调用我的笔记本。创建数据框时我必须在笔记本中了解
  • 1.我应该在哪里维护列标题元数据详细信息?我应该以 JSON 格式存储这些信息吗? 2.如果是,如何使用JSON为dataframe创建列

标签: python-3.x pandas dataframe databricks azure-databricks


【解决方案1】:

headers_df = pd.read_csv('path to headers csv') headers = headers_df.values.tolist()

分配列名称

pd.read_csv('path/to/file/without_header.csv',sep='|',names=headers)

希望这能回答你的问题

【讨论】:

  • 我将在哪里维护列类型详细信息
  • @Varun05 您不需要维护列类型的详细信息,pandas 通过列内的数据自行完成
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多