自定义 Apache 超集中的数字格式
Posted
技术标签:
【中文标题】自定义 Apache 超集中的数字格式【英文标题】:Customise the number format in Apache superset 【发布时间】:2020-08-08 20:23:37 【问题描述】:我正在尝试在 apache 超集中进行一些自定义。我想以印度格式显示超集图表中的数字。例如。 1
10
100
1,000
10,000
1,00,000
10,00,000
1,00,00,000
10,00,00,000
当我浏览图表时,在数字格式下拉菜单中,没有选项可以显示这样的数据。我已经在我的机器上设置了一个开发版本的超集,发现它使用了一个包 superset-ui-number-format。现在我不知道该怎么做。我是 superset 的新手,非常感谢您的帮助或指导。
【问题讨论】:
【参考方案1】:如果您可以编辑 Superset 实例/部署的代码,则有一种方法可以完成此操作。这假设您已从 GitHub 中提取代码,因此有一个 superset-frontend
文件夹。如果是这样,则打开superset-frontend/src/setup/setupFormatters.js
并执行以下操作:
在顶部,在 createDurationFormatter
旁边,确保从 @superset-ui/number-format
导入 createD3NumberFormatter
除了getNumberFormatterRegistry()
之后的所有registerValue
条目之外,再添加一个如下所示:
.registerValue(
'CURRENCY_INDIA',
createD3NumberFormatter(
locale:
decimal: '.',
thousands: ',',
grouping: [3, 2, 2, 2, 2, 2, 2, 2, 2, 2],
currency: ['₹', ''],
,
formatString: '$,.2f',
),
)
然后,当您在探索视图中编辑图表时,您可以输入 CURRENCY_INDIA
作为您的格式化程序,它应该可以工作!
或者,如果您要维护superset-ui
的分支,您可以将其添加为探索可视化控件中包含的选项。为此,您可以将其添加到 superset-ui_preset/packages/superset-ui-chart-controls/src/shared-controls/index.tsx
作为导出的 D3_FORMAT_OPTIONS
之一。
【讨论】:
有计划向主分支提出拉取请求吗? 我没有打算为这个@Adi 开 PR,因为我还没有听说有任何其他需求,我担心如果我为一种货币添加格式化程序,我们可能应该对所有其他主要货币都这样做......并添加一些配置标志以启用哪些标志。感觉就像一个滑坡。如果你想开PR,去吧!或者,如果您不是工程师,只是需要它,请告诉我,我可以做到。以上是关于自定义 Apache 超集中的数字格式的主要内容,如果未能解决你的问题,请参考以下文章